我需要在战争之外访问属性文件。 我正在通往外面的财产

类路径属性文件中的文件。 项目版本是Spring 2.5.1

不幸的是,@Configuration和Environemnt类不可用。

System.properties在类路径中,它具有外部属性的键条目。

key.externalFile = C:\\ temp \\ external.properties

我尝试了以下方法

            <context:property-placeholder location="classpath:System.properties"/>
            <context:property-placeholder location="file:${key.externalFile}" />

external.properties文件中,它具有ID

        keyValue= 444; 

我需要将此值注入到bean中,如下所示。

        <bean id="helloWorldBean"   class="com.java.snippets.enterprise.services.HelloWorld">
<property name="key" value="${keyValue} />

我收到错误无法解析字符串值“ $ {keyValue}”中的占位符“ keyValue”

我也尝试过

<context:property-placeholder location="file:${key.supportiveFile}" />  

 <util:properties id="props" location="file:${key.supportiveFile}"/>

但结果却一样。

<bean id="helloWorldBean"
    class="com.java.snippets.enterprise.services.HelloWorld">
     <property name="key" value="${props.keypath}" />
</bean>

请帮助我,期待。

完成代码1。上下文文件

      <beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xmlns:util="http://www.springframework.org/schema/util"
  xmlns:aop="http://www.springframework.org/schema/aop"  
      xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:jee="http://www.springframework.org/schema/jee"  
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd 
    ">

 <context:property-placeholder location="classpath:constants.properties"/>
 <context:property-placeholder location="file:${key.supportiveFile}"/>   
    <bean id="helloWorldBean"
    class="com.java.snippets.enterprise.services.HelloWorld">
     <property name="key" value="${keypath}" />
 </bean>
   </beans>

2. System property file - constants.properties
key.supportiveFile=C\:\\Users\\Kasun\\AppData\\Local\\Temp\\key.properties

3. Test Class 

    public static void main(String[] args) {

ApplicationContext context = new   
    ClassPathXmlApplicationContext("applicationContext.xml");           
        HelloWorld hello = (HelloWorld) context.getBean("helloWorldBean");          
        hello.sayHello();


} 

谢谢。 不幸的是,它仍然无法解决。 线程“主”中的异常org.springframework.beans.factory.BeanInitializationException:无法加载属性。 嵌套异常是java.io.FileNotFoundException:$ {key.externalFile}(系统找不到指定的文件),位于org.springframework的org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78)处。 org.springframework.context.support.AbstractApplicationContexeBeanFactoryPostProcessors(AbstractApplicationContext.java:516)上的context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:542)org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:348)在org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:123)在org.springframework.context.support.ClassPathXmlApplicationContext.t.invok

===============>>#1 票数:0

删除propertyPlaceholderConfigurer的上下文属性定义,并将其替换为:

    <bean id="placeholderConfig1" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>classpath:System.properties</value>
        </property>
        <property name="ignoreUnresolvablePlaceholders">
            <value>true</value>
        </property>
        <property name="systemPropertiesModeName">
            <value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
        </property>
    </bean>

    <bean id="placeholderConfig2" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
        <property name="location">
            <value>file:${key.externalFile}</value>
        </property>
    </bean>

  ask by Kasun translate from so

未解决问题?本站智能推荐:

3回复

了解基本的Spring框架和总流程

我是Spring框架的新手。 请指导我有关Spring的基本知识。 我知道Java和JSF,但对Struts或其他框架一无所知。 我已经搜索了Internet并能够下载PDF,但是我不了解Spring流程,就像我了解JSF流程一样。 请为我提供链接,以一种简单的方式了解Spring的流程
1回复

如何使用JUnit测试旧版Spring 2.0.7应用程序?

我有一个使用旧版本的Spring构建的旧应用:2.0.7。 我的任务是向该应用程序添加新功能,因此也需要编写一些JUnit测试。 到目前为止,我已经为我的服务编写了模型类,并在src/test/resources/下放置了一个applicationContext-test.xml文件。
2回复

弹簧表单绑定的jQuery动态表单元素

我在使用jquery在JSP中动态绑定spring表单元素时遇到了问题。 我试图将动态行添加到具有不同表单元素的表中。 演示: http : //jsfiddle.net/ninadhere/f7ZdK/ 这里的问题是新添加的表单元素的id和name属性为“ userName [0]
2回复

在Spring 2.5中将String或HTML返回给Ajax请求

我正在使用Spring 2.5(基于XML的配置)。如何在Spring控制器中将字符串返回给我的AJAX请求? 我的ajax代码如下: COntroller onSubmit需要一个ModelAndView对象的返回值,但是我只需要返回一个字符串,我该怎么做,请提出建议。
1回复

春天:ClassNotFound异常

我在Spring MVC中启动一个新项目,而我试图运行hello world时,它会抛出错误: 这是我的dispatcher-servlet.xml映射: 这是web.xml: 控制器代码在这里: 这是控制器呈现welcome.jsp的视图页面: 为什么有错
1回复

Spring应用程序管理bean的GUI

今天是个好日子, 在工作期间,我经常不得不运行一个超重的Spring应用程序来生成一些内容。 仅将数据加载到内存中并生成一些预定义的内容就花费了很多时间。 如果需要生成其他内容,则必须更改一些bean配置,并从内存加载开始重新运行所有应用程序。 我想知道是否有一些GUI库/应用程
1回复

Spring Boot MVC-如何在application.properties中配置多视图视图目录

我正在尝试使用Spring MVC Boot应用程序,当前正在使用springBootVersion ='2.1.6.RELEASE'。 我在数百个子目录中放置了数百个“ .jsp”文件,这些子目录位于Web应用程序的“查看”目录中,并且我试图查看如何在application.proper
1回复

Spring 2.5和石英1.6.2如何使用

在我们的项目中,我们使用spring 2.5,但我无法更改它。 同时,此版本具有内置的石英库版本1.6.2 现在我正尝试使用此内置库创建一些计划的任务,但它似乎不起作用,我也找不到该库的任何文档。 我有两个问题 首先-是否可以使用更高版本的石英,如果可以,如何与Spring结
1回复

如何使用Spring 2创建基于Jackson的JSON Rest服务

Spring 3具有本地json支持,可使用@ResponseBody spring 3批注返回json响应。 我的应用程序基于Spring 2,需要创建基于jackson的rest服务,当客户端使用浏览器发出http rest请求时,该服务将返回json。 我正在探索如何实现这一目
1回复

如何获得自定义的Spring 2身份验证提供程序来接受UsernamePasswordAuthenticationToken?

在Spring 2中,我创建了一个自定义的身份验证提供程序,因为我无法像Spring希望的那样从数据库中获取密码,因为这样会出现黑匣子。 当我尝试进行身份验证时,我得到: 找不到org.springframework.security.providers.UsernamePasswo