在Spring管理下的类中使用new对象带来的问题

  • 问题:当一个类被 @Component 注解修饰,或者在 applicationContext 配置文件中使用了 <bean> 标签配置,将其交给 Spring 容器进行管理后,如果在该类的属性或方法中new了对象,这个类将不能再被其他类使用 @Autowired 自动注入,会报空指针异常。

  • 解决方法:虽然 Spring 管理下的类中依旧可以使用 new 的方式生成对象,但是不推荐这么做,这样做了之后,该类只能通过手动调用 ClassPathXmlApplicationContext 类的 getBean 方法获取实例对象。建议一个类中使用的所有对象应该事先在 Spring 配置文件中定义好, 或者使用注解的方式统一交给 Spring 容器进行管理,使用的时候直接使用 @Autowired 获取实例对象即可。

posted @ 2019-06-27 14:04  soundofcolors  阅读(1704)  评论(0编辑  收藏  举报