使用spring自动装配后,怎么样使用new而里面装配的属性不报空指针

思无邪1990 2013-12-10 05:31:27
使用spring自动装配后,怎么样使用new而里面装配的属性不报空指针;
如:
public class PeopleMgmtImpl extends BaseMgmt implements PeopleMgmt{

@Autowired
private PeopleDAO peopleDAO;

public void setPeopleDAO(PeopleDAO peopleDAO){
this.peopleDAO = peopleDAO;
}
如果我在其他地方new了PeopleMgmtImpl ,peopleDAO会报空指针;

有没有好的办法可以解决。不要说peopleDAO也用new,有没有其他方法
...全文
359 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2013-12-11
  • 打赏
  • 举报
回复
自己读配置文件。解析。
乔不思 2013-12-11
  • 打赏
  • 举报
回复
你如果直接new那就根本没有用到spring容器,所以回报空指针,如果要获得就只有ApplicationContext ac=new Xml.....("bean.xml");这种方法了。。。,当然也要把PeopleMgmtImpl进行容器管理,,别的再没办法 了
程序员一灯 2013-12-10
  • 打赏
  • 举报
回复
这种情况项目中都会写个SpringUtil的。直接获取,然后赋值给DAO的。 比如有些项目是封装的注入不到的,就是封装的包固定扫描。。。。 这时候就必须有个这样的Util了。 一般都是有个监听器,通过ServletContextEvent获取ApplicationContext 然后以后都可以从里面获取bean了。
长笛党希望 2013-12-10
  • 打赏
  • 举报
回复
不能用new,实例化对象的时候破坏的Spring的管理。也就是说我们不能直接实例化他的对象,但是我们可以从配置中把他们读出来。
长笛党希望 2013-12-10
  • 打赏
  • 举报
回复
不用new,直接用注入吧。
teemai 2013-12-10
  • 打赏
  • 举报
回复
不要new了。自动注入了!
桃园闲人 2013-12-10
  • 打赏
  • 举报
回复
既然用了spring就不能再new了。在需要PeopleMgmtImpl 的地方通过spring注入。
你好毒你好毒 2013-12-10
  • 打赏
  • 举报
回复
用new关键字new出来的对象,jvm会重新分配对应的空间和指针,这完全就不受spring管理。所以spring管理的任何其它的东西你就拿不到,也就会报nullpoint错
少羽 2013-12-10
  • 打赏
  • 举报
回复
目测... ...没有!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧