工具类中(非spring管理的bean)如何注入被spring管理的bean

工具类中(非spring管理的bean)如何注入被spring管理的bean一个关键接口org.springframework.beans.factory.BeanFactoryAware先来个官方解释Interface

欢迎大家来到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.运行结果

工具类中(非spring管理的bean)如何注入被spring管理的bean

运行结果

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22281.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信