在.java文件中,我可以使用“getProperty(PARAMETER_NAME)”
获得参数值
我在.xml中有这段代码
<bean class="org.springframework.security.ui.cas.ServiceProperties"
id="authenticationServiceProperties">
<property name="service">
<value>http://v-repte-lnx.nwc.ac.za:8024/jasperserver-pro/j_spring_cas_security_check</value>
</property>
<property name="sendRenew">
<value>false</value>
</property>
</bean>
我想做的是没有硬编码的链接(第4行)
所以第4行看起来应该是这样的
<value>getProperty(PARAMETER_NAME)</value>
我可以在此.xml文件中使用什么来实现此目的?
EXTRA:
我正在使用 JasperReports Server 5.0.1
我的树看起来像这样
Webap>
applicationContext-security.xml
internal>
jasperreports.properties
编辑:
我实施了user2550754的解决方案,但无法让它工作
在user2550754的帖子中查看评论
立即更新文件:
applicationContext-security.xml文件
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="../WEB-INF/internal/jasperserver-pro.properties"/>
</bean>
<bean class="org.springframework.security.ui.cas.ServiceProperties"
id="authenticationServiceProperties">
<property name="service">
<value>${SERVICE_URL}</value>
</property>
<property name="sendRenew">
<value>false</value>
</property>
</bean>
jasperserver-pro.properties文件
SERVICE_URL=http://b-reptes-lnx1.nuw.ac.za:8024/jasperserver-pro/j_spring_cas_security_check
答案 0 :(得分:2)
将您的配置存储在属性文件中,例如application.properties
url=http://v-repte-lnx.nwc.ac.za:8024/jasperserver-pro/j_spring_cas_security_check
然后,按以下方式添加.xml
<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="default">
<property name="location" value="classpath:application.properties"/>
</bean>
并像这样配置您的代码
<bean class="org.springframework.security.ui.cas.ServiceProperties"
id="authenticationServiceProperties">
<property name="service">
<value>${url}</value>
</property>
<property name="sendRenew">
<value>false</value>
</property>
</bean>
答案 1 :(得分:2)
在Spring的最新版本中,您可以使用properties
命名空间中的util
标记在一行中加载属性:
<?xml version="1.0" encoding="UTF-8"?>
<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"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
<util:properties id="appProps" location="classpath:app.properties" />
并在xml文件中使用${key}
语法使用它们:
<bean id="service" class="com.mycompany.Service">
<property name="someParameter" value="${someParameterKey}"/>
</bean>
或注释:
@Value("${someParameterKey}")
private String someParameter;
答案 2 :(得分:1)
使用Spring属性占位符功能:
1.外部化配置文件,
2.加载org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
3.替换<value>${x.y.z}</value>