
🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
Redis
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
SpringApplication.run(DobboProApplication.class, args);代码启动Spring程序,其中,第一个参数是引导类类型,第二个参数是main方法传过来的命令行参数run方法有一个返回结果:ConfigurableApplicationContext context = SpringApplication.run(DobboProApplication.class, args);
ApplicationContext间接继承了BeanFactorycontext.getBean("aaa");ApplicationContext提供的,而是间接使用BeanFactory提供的getBean方法getBean的具体实现:public Object getBean(String name) throws BeansException {
this.assertBeanFactoryActive();
return this.getBeanFactory().getBean(name);
}
getBean的具体实现中可以看出,首先是获取BeanFactory,然后调用BeanFactory中的getBean方法,实际上调用的是BeanFactory的getBean方法。BeanFactory是ApplicationContext的一个成员变量:

BeanFactory 的实现类:
BeanFactory对于控制反转、基本的依赖注入、Bean的生命周期,都有其对应的实现类getMessage:读取一个key翻译后的结果,可以支持多种语言(中文、英文等)public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(DobboProApplication.class, args);
System.out.println(context.getMessage("hi", null, Locale.CHINA));
System.out.println(context.getMessage("hi", null, Locale.ENGLISH));
System.out.println(context.getMessage("hi", null, Locale.JAPANESE));
}
getResources:获取资源classpath::从类路径中获取资源file::从磁盘路径中获取资源public static void main(String[] args) throws IOException {
ConfigurableApplicationContext context = SpringApplication.run(DobboProApplication.class, args);
Resource[] resources = context.getResources("classpath:application.properties");
for (Resource resource : resources) {
System.out.println(resource);
}
}

public static void main(String[] args) throws IOException {
ConfigurableApplicationContext context = SpringApplication.run(DobboProApplication.class, args);
Resource[] resources = context.getResources("classpath*:META-INF/spring.factories");
for (Resource resource : resources) {
System.out.println(resource);
}

getEnvironment:获取环境信息System.out.println(context.getEnvironment().getProperty("java_home"));
