SpringBoot运行时注入一个Bean

这篇具有很好参考价值的文章主要介绍了SpringBoot运行时注入一个Bean。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

描述

使用GenericApplicationContext类的registerBean方法可以在项目运行时注入一个bean,获取GenericApplicationContext可以继承ApplicationContextAware,重写setApplicationContext,里面的参数就是ApplicationContext。

继承ApplicationContextAware

@RestController
@RequestMapping("/register/bean")
public class RegisterBeanController implements ApplicationContextAware {

    private ApplicationContext applicationContext;

    // AnnotationConfigServletWebServerApplicationContext
    @GetMapping("/example")
    public String registerBean() {
        GenericApplicationContext genericApplicationContext = (GenericApplicationContext) this.applicationContext;
        // ExampleBean没有使用任何的Component注解。
        genericApplicationContext.registerBean("ExampleBean", ExampleBean.class);
        ExampleBean exampleBean = (ExampleBean) applicationContext.getBean("ExampleBean");
        return exampleBean.getBeanData().getName();
    }


    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
}

BeanData

@Component
public class BeanData {
    public String getName() {
        return "BeanData";
    }
}

ExampleBean

测试@Autowrite是否生效。文章来源地址https://www.toymoban.com/news/detail-630233.html

public class ExampleBean {
    private String name;
	
    @Autowired
    private BeanData beanData;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public BeanData getBeanData() {
        return beanData;
    }
}

到了这里,关于SpringBoot运行时注入一个Bean的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mini-spring-为bean填充属性&注入bean

    bean属性填充的设计 什么是属性填充 属性填充可以在类 AbstractAutowireCapableBeanFactory 的 createBean 方法中添加补全属性方法。 属性填充要做的事情 1.属性填充要在类实例化创建之后,也就是需要在 AbstractAutowireCapableBeanFactory 的 createBean 方法中添加 applyPropertyValues 操作。由于我们需

    2024年01月25日
    浏览(29)
  • [Spring] @Bean 修饰方法时如何注入参数

    目录 一、@Bean 的简单使用 1、正常情况 2、问题提出 二、解决方案 1、@Qualifier 2、直接写方法名 三、特殊情况 1、DataSource 在开发中,基于 XML 文件配置 Bean 对象的做法非常繁琐且不好维护,因此绝大部分情况下都是使用“完全注解开发”。 对于 Spring 而言,IOC 容器中的 Bean

    2024年01月18日
    浏览(27)
  • Spring——Bean注入几种方式(放入容器)

    个人博客: 全是干货,相信不会让你失望 1.XML方式注入 在现在这个Springboot横行的年代,以XML来注入的方式可能已经不多见了,因为压根用不着,但毕竟是注入方式之一也得提一提,这种方式就是依赖于XML的解析来获取我们需要注入的Bean对象 常见的方式有:set方法注入、构

    2024年02月01日
    浏览(32)
  • 将Bean注入Spring容器的五种方式

    将bean放入Spring容器中有哪些方式? 我们知道平时在开发中使用Spring的时候,都是将对象交由Spring去管理,那么将一个对象加入到Spring容器中,有哪些方式呢,下面我就来总结一下 这种方式其实也是我们最常用的一种方式,@Configuration用来声明一个配置类,然后使用 @Bean 注解

    2024年02月05日
    浏览(24)
  • 4.3---Spring框架之Spring中bean的注入方式---(深入版本)

    Spring基于xml注入bean的几种方式: set()方法注入; 2.构造器注入:①通过index设置参数的位置;②通过type设置参数类型; 静态工厂注入; 实例工厂; Spring IOC注入方式用得最多的是(1)(2)种; 注意:通过Spring创建的对象默认是单例的,如果需要创建多实例对象可以在标签后面添

    2023年04月10日
    浏览(31)
  • 使用@Configuration和@Bean给spring容器中注入组件

    以前我们是使用配置文件来注册bean的,现如今可以用@Configuration 来代替配置文件。

    2024年02月11日
    浏览(28)
  • 一文道破将bean注入到Spring中的几种方式

    前言: 前两天有学妹问我如何将bean注入到Spring中,虽问题较简单,但还是写此文以告之。 在Java的Spring框架中,将bean注入到容器中是核心概念之一,这是实现依赖注入的基础。Spring提供了多种方式来将bean注入到容器中。 写此文,同时也希望这篇文章能帮助到各位路过的大佬

    2024年04月15日
    浏览(30)
  • [已解决]Springboot单元测试时注入bean失败的问题

    SpringBoot扫包的方式,扫描启动类(引导类)所在的包和它的子包 首先看看测试类的包名与启动类的 包名是否一致   因为包名不一致,当启动类启动时就不知道去哪扫描bean,所以也就无法注入。 还有就是注意@SpringBootTest指定的启动类不要导错包 \\\"启动类\\\" 导入自己项目的启动类

    2024年02月11日
    浏览(34)
  • SpringBoot 使用lombok的@RequiredArgsConstructor注解进行Bean注入

    参考资料: lombok 使用 @RequiredArgsConstructor 注解完成 spring 注入问题 ⏹当我们使用 @Autowired 进行Bean注入的时候,IDEA会提示警告,不建议使用此方式进行注入。Spring官方更推荐使用构造方法进行注入。 ⏹随之而来的问题就是如果一个类中要注入多个对象的话,构造方法进行注入

    2024年02月11日
    浏览(33)
  • B057-spring增强 依赖注入 AOP 代理模式 创建Bean

    DI:依赖注入 环境准备,即写一个spring测试,见工程 构造器注入 即使用构造器来给Bean的对象的属性赋值 MyBean OtherBean SpringTest-Context.xml SpringTest setter方法注入 即用setter方法给bean对象的属性赋值 MyBean OtherBean SpringTest-Context.xml SpringTest AOP 概念 事务管理:比如可以抽取try catch的

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包