当前位置: 代码迷 >> J2EE >> 流入Spring java-config中定义的Bean
  详细解决方案

流入Spring java-config中定义的Bean

热度:27   发布时间:2016-04-17 23:45:33.0
注入Spring java-config中定义的Bean

public class GeneralTrackBean extends TrackBean{
private UserDao userDao;

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

public GeneralTrackBean(int uid) {
this();
// TODO Auto-generated constructor stub
this.uid=uid;
}

public GeneralTrackBean() {
super();
// TODO Auto-generated constructor stub
//AnnotationConfigApplicationContext  ctx=new AnnotationConfigApplicationContext(JdbcPoolConnection.class);
//userDao=(UserDao) ctx.getBean("userDao");
}
       ...
}


1.我用的Spring 3.2.9.如果把默认的构造方法中的注释打开,不用Set方法,就不会报NullPoinerException了,
2.java config中配的没问题
3.我试着给userDao加注解:Autowired,也是报空指针异常
4.我在applicationContext.xml中配置该bean也不起作用
------解决方案--------------------
Autowired生效需确认是否扫描到了这个类。
如果是注解实例化这个类那这个必需要无参的构造函数, 在xml中 可以通过property 标签,注入userDao属性你要引用JavaConfig里生成的实例
------解决方案--------------------
在你的配置中有没有配置支持注解,如果没有加上去,如果有了在你的tomcat启动过程中看看有没有注入,最好把你的错误信息贴出来
------解决方案--------------------
我觉得.....
如果要加@autowired的话...那类也要加@component...还要打开<context:annotation-config/>
另外...如果GeneralTrackBean是在java-config中配置的话如果要用到xml中的bean应该要@ImportResource("classpath:/combean-config.xml")
------解决方案--------------------
大牛,看看这个http://blog.csdn.net/oathevil/article/details/6661497
  相关解决方案