- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Spring XML 中有两个 PropertyPlaceHolderConfigurer。第一个从文件中获取应用程序属性。第二个从数据库获取用户属性,如下所示:
<myConfiguration>
<bean id="databaseProperties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="properties">
<bean class="org.apache.commons.configuration.ConfigurationConverter"
factory-method="getProperties">
<constructor-arg>
<ref bean="propertiesSource" />
</constructor-arg>
</bean>
</property>
</bean>
<bean id="propertiesSource" class="org.apache.commons.configuration.DatabaseConfiguration">
<constructor-arg type="javax.sql.DataSource" ref="tomcatDataSource" />
<constructor-arg value="application_properties" />
<constructor-arg value="PROPERTY_KEY" />
<constructor-arg value="PROPERTY_VALUE" />
</bean>
<bean id="propertiesService" class="com.xxx.PropertiesServiceImpl">
<property name="propertiesSource" ref="propertiesSource"></property>
</bean>
<myConfiguration>
它工作正常,我可以通过注入(inject)“propertiesService”来访问这些属性,例如:
@Autowired
private PropertiesService propertiesService;
这是:
public class PropertiesServiceImpl implements PropertiesService {
@Autowired
private DatabaseConfiguration propertiesSource;
private Properties properties;
@Override
public String getProperty(String key) {
if (properties == null) {
properties = ConfigurationConverter.getProperties(propertiesSource);
}
return properties.getProperty(key);
}
@Override
public Properties getProperties() {
if (properties == null) {
properties = ConfigurationConverter.getProperties(propertiesSource);
}
return properties;
}
问题是我喜欢使用@Value注释,但它不起作用。
我已经尝试过:
private @Value("#{propertiesService.helloWorld}") String helloWorld;
当然,该属性存在并且可以通过“propertiesService”访问,但它会导致下一个错误:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 18): Property or field 'helloWorld' cannot be found on object of type 'com.infraportal.model.properties.PropertiesServiceImpl' - maybe not public?
at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:224)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:46)
at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue(PropertyOrFieldReference.java:374)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:88)
at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:120)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:242)
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:161)
这让我认为 Spring 正在寻找“getHelloWorld()”方法,而不是使用“getProperty(String key)”
有什么建议吗?
最佳答案
您需要在 EL 中引用的 bean 上显式指定要调用哪个方法,并提供如下参数值
@Value("#{propertiesService.getProperty('helloWorld')}")
private String helloWorld;
关于java - @Value 注解和数据库 PropertyPlaceHolderConfigurer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40483861/
我有一个像这样的 PropertyPlaceholderConfigurer: classpath:assuredlabor/marga
我有以下基于 Spring XML 的配置: classpath:/default-cfg.properties
我想知道是否可以在 PropertyPlaceholderConfigurer 中的属性文件之前使用数据库中的值。所以我想要实现的是加载属性文件,如果数据库中存在任何键,则使用它。现在我不知道从哪里开
我想使用 PropertyPlaceHolderConfigurer 将内部 Web 服务的 WSDL URL 动态传递到我的 Spring beans.xml 中。 场景如下: 我的 Web 应用程
我正在尝试创建两个PropertyPlaceholderConfigurer,一个用于访问属性文件,另一个用于访问数据库...代码如下
在下面的代码片段中 “依赖”的意义是什么以及如何操纵 ${ENVIRONMENT} 的值?? 系统的环境变量中的Environment是指我的系统变量吗? 最佳答案 检查 this dep
我有一个项目,我分为几个子项目,所以这就是层次结构 parent -project A -project B 现在在项目 A 中,我这样定义我的属性文件:
对 PropertyPlaceholderConfigurer 有疑问。如果更改了属性文件,spring 会动态加载它还是我们必须启动应用程序才能使更改生效? 最佳答案 它们在启动时加载。 但是mak
我需要在加载我的 JBOSS 应用程序服务器时覆盖我的属性文件中给定的属性值。 我尝试使用以下代码覆盖 PropertyPlaceholderConfigurer 中的 processProperti
对此的解决方案可能非常简单,但我不确定我错过了什么。这是我所拥有的,还有 PropertyPlaceholderConfigurer不会取代 ${...} . /* ---- org/company/
我正在使用 LDAP 对 Web 应用程序中的用户进行身份验证。 LDAP 相关 bean 在名为 spring-servlet-security-ldap.xml 的单独文件中配置(现在称为 lda
是否可以使用 PropertyPlaceholderConfigurer 更新属性 applicationContext.html 配置.java @C
我有一个 Spring 4.3 自定义 PropertyPlaceholderConfigurer,它在注入(inject)之前对从属性文件读取的值进行额外处理: public class MyPro
我有一个非常简单的要求,但它变得复杂了,我花了一天时间却没有任何运气。我有一个名为 jdbc.properties 的属性文件其中包含数据库连接详细信息。我需要使用属性文件中的值创建数据源连接。现在没
我有一个像这样的属性文件: firstproperty=1,2,3,4 secondproperty=47,998,120 thirdproperty=54 我的属性文件在 Spring 配置中被明确
我在不同环境中定义数据库属性时遇到问题。属性文件如下所示: db.url-DEV=host1:port:con... db.user-DEV=user1 db.url-PROD=host2:port:
我们使用的是 Spring 4.2.5 版本。基本上需要有一个 PropertyPlaceholderConfigurer 的自定义实现,以便在使用它们之前解密数据。这很好用。但是,我还需要能够根据属
我的 Spring XML 中有两个 PropertyPlaceHolderConfigurer。第一个从文件中获取应用程序属性。第二个从数据库获取用户属性,如下所示:
我尝试使用 PropertyPlaceholderConfigurer 加载属性文件中的一些变量,但它不起作用。互联网上的一些网站建议当 spring aop 不在类路径中时会出现问题,但我确保 ao
我使用两个 PropertyPlaceholderConfigurer bean 创建了 applicationContext,并使用上下文对象根据我的输入仅访问一个。但是,在从“Service2Re
我是一名优秀的程序员,十分优秀!