SpringBoot:applicationContext.[erproties、yml、yaml以及向容器注入组件
引导类
本质上是一个配置类(@Configuration),他会扫描当前包及其子包的注解(@ComponentScan的默认情况)
tomcat
springboot内嵌了一个tomcat服务器。spring容器中有一个tomcat对象。
在application.properties中可以配置若干配置。如:
# 应用名称
spring.application.name=demo_2
# 应用服务 WEB 访问端口
server.port=80
优先级:xx.properties>xx.yml>xx.yaml
多个配置文件,共生叠加,并相互覆盖。
yaml重数据而轻格式
SpringBoot可以将整个项目打包成jar包,并通过命令行的方式启动。
org.springframework.boot
spring-boot-maven-plugin
如何给容器添加组件@Configuration
在配置类上使用注解@Bean给容易注册组件。默认是单实例的。
外部无论对配置类中的这个组件注册方法调用多少次,都是这钱在容器中注册的那一个单实例Bean。
在@Configuration(proxyBeanMethods = ture)
时,springboot创建的配置类的代理对象调用方法时,总会检查这个组件是否在容易中,以确保组件单实例。如果为false时,则是一个普通的java对象,此时创建的user和user1不是同一个。默认为true。
@Configuration(proxyBeanMethods = true)
public class Conf {
@Bean
public User getUser(){
return new User();
}
}
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(Demo1Application.class, args);
Conf bean = run.getBean(Conf.class);
User user = bean.getUser();
User user1 = bean.getUser();
System.out.println(user==user1);
}
//打印结果为true;
为true:每一次调用都会去检查容器中有没有相应的组件,花费时间较多。
为false:直接创建一个新的返回,花费时间较少。
@Import
可以通过这个注解来向容器中添加组件
@Import({User.class})