gpt4 book ai didi

java - Spring @Value 注释不起作用

转载 作者:行者123 更新时间:2023-12-02 22:50:12 24 4
gpt4 key购买 nike

我的 bean 上未设置用 @Value 注释的属性。

我的上下文和类位于另一个项目的类路径上的 jar 内。它的 spring 上下文导入我的 spring 上下文,并且我的 spring 上下文从类路径加载配置文件并包含各种 bean 定义。

延迟加载没有在任何地方使用,我的 jar 使用的是 Spring 3.1.4,使用我的 jar 的项目使用的是 Spring 3.2.3。

当外部项目加载其上下文(导入我的)时,显示属性文件的记录器已加载

[main] INFO  Loading properties file from class path resource [connector-config.properties] - (PropertyPlaceholderConfigurer.java:172:)

摘 self 的 Spring 上下文:

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
lazy-init="false">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:connector-config.properties</value>
</list>
</property>
</bean>
...
<!-- The actual beans referenced are not foo bar and com but should not be relevant to this issue -->
<bean id="requestGenerator" class="com.connector.RequestGenerator">
<constructor-arg name="foo" ref="foo" />
<constructor-arg name="bar" ref="bar" />
<constructor-arg name="com" ref="com" />
</bean>

使用我的 jar 的项目类路径上的配置文件

ruleType=PAUL
response.poolSize=10
ack.poolSize=10
#This needs to be in minutes
max.run.time=100
base.dir=\\

来自外部项目的类从我的上下文加载 bean:通过在 Eclipse Debug模式下检查 requestGen 对象,我可以看到属性 RuleType 为 null。给定上述属性文件,ruleType 应为“PAUL”,但它为 null。

public class App
{
public static void main(Straing[] args)
{
@SuppressWarnings("resource")
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
RequestGenerator requestGen = context.getBean("requestGenerator", RequestGenerator.class);

最佳答案

@Value注释由 AutowiredAnnotationBeanPostProcessor 处理如果您有<component-scan>,通常会注册或<annotation-config> XML 中的配置(或直接使用 bean 定义)。您需要添加其中任何一个,可能是 <annotation-config>既然你说过你没有@Component类。

关于java - Spring @Value 注释不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com