@Inject失效问题解决方案:新创建对象中未被注入属性的问题
发布时间
阅读量:
阅读量
代码中使用new创建的对象中的@Autowired属性不会被自动装配注入;
当类A中存在成员变量B,并且B是通过@Autowired注解进行自动注入时,若类A的实例是采用new关键字手动创建的方式生成,则此时自动注入机制将无法正常工作。
为解决这一问题,可以借助Spring上下文来获取相应的对象实例。
伪代码示例如下:ClassBInterface b = (ClassBInterfaceImpl) ServiceLocator.getBean("classBInterfaceImpl");
ServiceLocator作为用于获取对象的工具类,其具体实现方式如下所示
// 获取spring对象的工具类,这个工具类是springboot扫描自动装入spring容器的,在需要使用的地方,即不能自动装配的类的方法中 如下方式使用就行了
NettyClientService nettyClientService = (NettyClientService) ServiceLocator.getBean("nettyClientServiceImpl");
@Component
public class ServiceLocator implements ApplicationContext
全部评论 (0)
还没有任何评论哟~
