SpringBoot获取ApplicationContext的3种⽅式ApplicationContext是什么?
简单来说就是Spring中的容器,可以⽤来获取容器中的各种bean组件,注册监听事件,加载资源⽂件等功能。Application Context获取的⼏种⽅式
1 直接使⽤Autowired注⼊
@Component
public class Book1 {
@Autowired
private ApplicationContext applicationContext;
public void show (){
System.out.Class());
}
}
2 利⽤ spring4.
3 的新特性
使⽤spring4.3新特性但是存在⼀定的局限性,必须满⾜以下两点:
1)构造函数只能有⼀个,如果有多个,就必须有⼀个⽆参数的构造函数,此时,spring会调⽤⽆参的构造函数
2)构造函数的参数,必须在spring容器中存在
@Component
public class Book2 {
private ApplicationContext applicationContext;
public Book2(ApplicationContext applicationContext){
System.out.Class());
this.applicationContext=applicationContext;
}
public void show (){
System.out.Class());
}
}
spring framework组件
3 实现spring提供的接⼝ ApplicationContextAware
spring 在bean 初始化后会判断是不是ApplicationContextAware的⼦类,调⽤setApplicationContext()⽅法,会将容器中ApplicationContext传⼊进去
@Component
public class Book3 implements ApplicationContextAware {
private ApplicationContext applicationContext;
public void show (){
System.out.Class());
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
结果获取三次:
class t.annotation.AnnotationConfigApplicationContext
class t.annotation.AnnotationConfigApplicationContext
class t.annotation.AnnotationConfigApplicationContext
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。