SpringBoot获取ApplicationContext的3种方式

 更新时间:2019年09月24日 10:43:57   作者:A 是小阿怪啊  
这篇文章主要为大家详细介绍了SpringBoot获取ApplicationContext的3种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

ApplicationContext是什么?

简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。

Application Context获取的几种方式

1 直接使用Autowired注入

@Component
public class Book1 {

 @Autowired
 private ApplicationContext applicationContext;

 public void show (){
  System.out.println(applicationContext.getClass());
 }
}

2 利用 spring4.3 的新特性

使用spring4.3新特性但是存在一定的局限性,必须满足以下两点:

1) 构造函数只能有一个,如果有多个,就必须有一个无参数的构造函数,此时,spring会调用无参的构造函数

2) 构造函数的参数,必须在spring容器中存在

@Component
public class Book2 {

 private ApplicationContext applicationContext;

 public Book2(ApplicationContext applicationContext){
  System.out.println(applicationContext.getClass());
  this.applicationContext=applicationContext;
 }

 public void show (){
  System.out.println(applicationContext.getClass());
 }

}

3 实现spring提供的接口 ApplicationContextAware

spring 在bean 初始化后会判断是不是ApplicationContextAware的子类,调用setApplicationContext()方法, 会将容器中ApplicationContext传入进去

@Component
public class Book3 implements ApplicationContextAware {

 private ApplicationContext applicationContext;

 public void show (){
  System.out.println(applicationContext.getClass());
 }

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

结果获取三次:

class org.springframework.context.annotation.AnnotationConfigApplicationContext
class org.springframework.context.annotation.AnnotationConfigApplicationContext
class org.springframework.context.annotation.AnnotationConfigApplicationContext

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java并发编程之CountDownLatch解读

    Java并发编程之CountDownLatch解读

    这篇文章主要介绍了Java并发编程之CountDownLatch解读,是通过一个计数器来实现的,计数器的初始值是线程的数量,countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行,需要的朋友可以参考下
    2023-12-12
  • nacos服务注册服务发现依赖配置详解

    nacos服务注册服务发现依赖配置详解

    这篇文章主要为大家介绍了nacos服务注册服务发现依赖配置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 值得Java开发者关注的7款新工具

    值得Java开发者关注的7款新工具

    作为老牌语言Java,其生态圈也出来了一些有关云服务、监控、文档分享方面的工具,这篇文章主要介绍了Java开发者值得关注的7款新工具,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Java获取随机数的3种方法

    Java获取随机数的3种方法

    本篇文章主要介绍了Java获取随机数的3种方法,现在分享给大家,也给大家做个参考,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • SpringBoot @Configuration与@Bean注解使用介绍

    SpringBoot @Configuration与@Bean注解使用介绍

    这篇文章主要介绍了SpringBoot中的@Configuration与@Bean注解,在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制,只有把这些都搞清楚了,我们在之后使用才会更加得心应手
    2022-10-10
  • 工作中Java集合的规范使用操作详解

    工作中Java集合的规范使用操作详解

    这篇文章主要为大家详细介绍了工作中Java集合使用时需要注意的规范,文中的示例代码讲解详细,对我们使用Java集合有一定的帮助,感兴趣的可以了解一下
    2022-11-11
  • SpringCloud 服务负载均衡和调用 Ribbon、OpenFeign的方法

    SpringCloud 服务负载均衡和调用 Ribbon、OpenFeign的方法

    这篇文章主要介绍了SpringCloud 服务负载均衡和调用 Ribbon、OpenFeign的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • springboot之配置双kafka全过程

    springboot之配置双kafka全过程

    这篇文章主要介绍了springboot之配置双kafka全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • SpringBoot使用Filter实现签名认证鉴权的示例代码

    SpringBoot使用Filter实现签名认证鉴权的示例代码

    这篇文章主要介绍了SpringBoot使用Filter实现签名认证鉴权的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 基于java实现颜色拾色器并打包成exe

    基于java实现颜色拾色器并打包成exe

    这篇文章主要为大家详细介绍了如何基于java编写一个简单的颜色拾色器并打包成exe文件,文中的示例代码讲解详细,需要的小伙伴可以跟随小编一起学习一下
    2023-10-10

最新评论