记录一次代码调用问题
情况说明
使用@Resource注解注入被Spring管理的类时,该类中使用@Resource注解的类为null值
代码片段
public class Client{
@Resource
private SpringResourceTest springResourceTest;
public static void main(String[] args){
//此处调用,会导致SpringResourceTest中的searchDataDao为null
springResourceTest.exectue();
}
}
@Component
public class SpringResourceTest {
@Resource
private SearchDataDao searchDataDao;
public void exectue(){
searchDataDao.exectue();
}
}
解决方法
1、将Client类交由spring管理,使用@Component注解
注意 此处需要结合代码调用判断Client是否可以被交由Spring容器管理
2、使用其他方法调用被Spring容器管理的类中的变量及方法