欢迎大家来到IT世界,在知识的湖畔探索吧!
如果想在工具类这种非spring管理的bean的对象中注入spring管理的bean,应该怎么做呢?
一个关键接口org.springframework.beans.factory.BeanFactoryAware
先来个官方解释
Interface to be implemented by beans that wish to be aware of their owning {@link BeanFactory}.
欢迎大家来到IT世界,在知识的湖畔探索吧!
其实就是将这个需要注入spring管理的bean的对象交给spring管理,让它自己变成一个spring管理的 bean,然后实现这个接口,为什么不能直接注入呢?因为工具类中一般都是静态变量,和spring容器中bean的初始化时机不一样,这个今天不细说。
下边开始代码测试一波,喜欢的点个关注,持续更新!
1.配置bean
欢迎大家来到IT世界,在知识的湖畔探索吧!@Bean public User user() { User user = new User(); user.setId(666L); user.setName("666name"); return user; }
2.创建工具类
/** * utils中获取bean */ public class BeanUtils implements BeanFactoryAware { public static User user; @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { user = beanFactory.getBean(User.class); System.out.println(user.toString()); } }
3.使用工具类
欢迎大家来到IT世界,在知识的湖畔探索吧!@RequestMapping("/utils") @RestController public class UtilsController { @RequestMapping("/getBeanOfUtils") public Object getBeanOfUtils() { return BeanUtils.user.toString(); } }
4.运行结果
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22281.html