我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
// Implementation omitted
}
在Spring XML文件中,定义了一个PropertyPlaceholderConfigurer:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/app.properties" />
</bean>
我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情
<bean class="com.example.PersonDaoImpl">
<property name="maxResults" value="${results.max}"/>
</bean>
因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容:
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
@Resource(name = "propertyConfigurer")
protected void setProperties(PropertyPlaceholderConfigurer ppc) {
// Now how do I access results.max?
}
}
但是我不清楚我如何从中访问我感兴趣的财产ppc
?
你可以在Spring 3中使用EL支持进行此操作。例:
@Value("#{systemProperties.databaseName}")
public void setDatabaseName(String dbName) { ... }
@Value("#{strategyBean.databaseKeyGenerator}")
public void setKeyGenerator(KeyGenerator kg) { ... }
systemProperties
是一个隐式对象,并且strategyBean
是Bean名称。
还有一个示例,当你想从Properties
对象中获取属性时,该示例将起作用。它还显示你可以应用于@Value字段:
@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;
问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 在Spring XML文件中,定义了一个PropertyPlaceholderConfigurer: 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但
问题内容: 有点卡在这里。我有一个带有3个配置文件的pom。Theese配置文件具有不同的版本名称。我要在构建特定配置文件时将该版本名称注入属性文件。 我的个人资料: 和filter.properties看起来像这样: 怎么做?我通过命令构建项目: 问题答案: 您需要做的是在POM文件的部分中添加一个新部分。 像这样: 这将在指定文件的指定文件夹()内部查找,并在遇到定义的变量时更改文件。 因此,
如何将和的值注入Spring重试注释?在下面的示例中,我想用配置属性的相应引用替换maxAttempts的值和backoff值的值。
我想根据“配置文件”设置注释的值。 让我举个例子来解释; 在上面的例子中,我们可以看到活动的“配置文件”是PROD,但是假设我们想要使用DEV配置文件,我们将不得不注释来自PROD的@Table注释,并取消注释DEV@Table注释。 如果这只针对一个实体,那不会是一个问题,但我有很多实体都有这种情况,所以我不认为这是处理这种即兴“简介”的方式。 你知道有什么办法可以解决这种情况吗?
问题内容: 使用诸如 可以分配具有某些属性的某些字段。 是否有更短,更简洁的形式来执行此操作? 问题答案:
我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。