SpEL java.util.Properties 不起作用。马文 Tomcat 8
Doesn't work SpEL java.util.Properties . Maven Tomcat 8
我尝试在 applicationContext.xml 中将 SpEL 与 java.util.Properties 结合使用。否则我使用 maven tomcat 插件。
我的class:
public class FieldClass{
private Properties pr;
public Properties getProperties(){
return this.pr;
}
public void setProperties(Properties properties){
this.pr = properties;
}
}
我的 xml:
<bean id="field" class="com.myproject.app.FieldClass">
<property name="pr" value="#{systemProperties['APP.LOG_PATH']}" />
</bean>
然后我在命令行中运行 mvn -DAPP.LOG_PATH=/Users/wsaryada/tmp tomcat7:redeploy
。但是我编译失败了。
我还尝试以这种方式在 pom.xml 中指定属性:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcatserver</server>
<systemProperties>
<APP.LOG_PATH>/home/user/tmp</APP.LOG_PATH>
</systemProperties>
</configuration>
</plugin>
但它也不起作用。
我也试过使用 <property name="pr" value="#{systemEnvironment['APP.LOG_PATH']}" />
但同样的问题
FAIL - Deployed application at context path /application but context
failed to start
问题出在哪里???
我评论bean后全部工作成功
更新
我更改了 Spring 而不是 class 中的属性并且部署错误消失了,但是 pr 的值变为空
Java中的 Properties 对象本质上是键值对的集合。
在 spring 中,当您注入 属性 时,您在 xml 文件中引用了它的键,并且该值被注入到您的代码中。因此,java 代码中的对象类型应反映值的任何数据类型(字符串、整数等...)。
此外,当您使用 Spring 注入属性时,有一些规则:
1) xml 中的 属性 的名称应该与 java 代码中的属性名称相同。
2) 您的 java 属性应该存在 Getters 和 Setters。
3) Getters 和 Setters 的名字应该和你的属性同名,但是在前面加上 get 或 set,例如getPr(), setPr().
如果有帮助请告诉我。
我尝试在 applicationContext.xml 中将 SpEL 与 java.util.Properties 结合使用。否则我使用 maven tomcat 插件。
我的class:
public class FieldClass{
private Properties pr;
public Properties getProperties(){
return this.pr;
}
public void setProperties(Properties properties){
this.pr = properties;
}
}
我的 xml:
<bean id="field" class="com.myproject.app.FieldClass">
<property name="pr" value="#{systemProperties['APP.LOG_PATH']}" />
</bean>
然后我在命令行中运行 mvn -DAPP.LOG_PATH=/Users/wsaryada/tmp tomcat7:redeploy
。但是我编译失败了。
我还尝试以这种方式在 pom.xml 中指定属性:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcatserver</server>
<systemProperties>
<APP.LOG_PATH>/home/user/tmp</APP.LOG_PATH>
</systemProperties>
</configuration>
</plugin>
但它也不起作用。
我也试过使用 <property name="pr" value="#{systemEnvironment['APP.LOG_PATH']}" />
但同样的问题
FAIL - Deployed application at context path /application but context failed to start
问题出在哪里???
我评论bean后全部工作成功
更新
我更改了 Spring 而不是 class 中的属性并且部署错误消失了,但是 pr 的值变为空
Java中的 Properties 对象本质上是键值对的集合。
在 spring 中,当您注入 属性 时,您在 xml 文件中引用了它的键,并且该值被注入到您的代码中。因此,java 代码中的对象类型应反映值的任何数据类型(字符串、整数等...)。
此外,当您使用 Spring 注入属性时,有一些规则: 1) xml 中的 属性 的名称应该与 java 代码中的属性名称相同。 2) 您的 java 属性应该存在 Getters 和 Setters。 3) Getters 和 Setters 的名字应该和你的属性同名,但是在前面加上 get 或 set,例如getPr(), setPr().
如果有帮助请告诉我。