Spring 在弹簧中注入自动接线值时
有人知道自动连线字段(如果与通过构造函数或set方法没有区别的话)的值何时准确地注入到使用它的类中吗 例如,我尝试注入值serverProperties。正如我所发现的,在我尝试使用该字段设置类字段ROOT_目录的初始值时,该字段还没有得到注入的值,其中serverProperties抛出空指针异常。注射什么时候发生?在初始化所有类字段之后?提前谢谢 PS:保持bean是一个带注释的控制器Spring 在弹簧中注入自动接线值时,spring,annotations,inversion-of-control,code-injection,autowired,Spring,Annotations,Inversion Of Control,Code Injection,Autowired,有人知道自动连线字段(如果与通过构造函数或set方法没有区别的话)的值何时准确地注入到使用它的类中吗 例如,我尝试注入值serverProperties。正如我所发现的,在我尝试使用该字段设置类字段ROOT_目录的初始值时,该字段还没有得到注入的值,其中serverProperties抛出空指针异常。注射什么时候发生?在初始化所有类字段之后?提前谢谢 PS:保持bean是一个带注释的控制器 @Autowired @Qualifier("serverProperties") private Pro
@Autowired
@Qualifier("serverProperties")
private Properties serverProperties;
private final String ROOT_DIRECTORY = serverProperties.getProperty("root.path");
豆子是
@Autowired
属性)根目录
,而不仅仅是在类主体中定义它。所以你的代码应该是
@Autowired
@Qualifier("serverProperties")
private Properties serverProperties;
private String ROOT_DIRECTORY;
public void init() {
ROOT_DIRECTORY = serverProperties.getProperty("root.path");
}
您的bean应该有一个定义的init
方法,如
<bean id="exampleInitBean" class="examples.ExampleBean" init-method="init"/>
如果您使用的是注释,那么可以使用@PostConstruct谢谢,我的bean实际上是一个带注释的控制器,这意味着我不能使用init method=“init”。另一种选择?我想我已经找到了@PostConstruct public void init(){/…}