学习过程成,逐步碰到的知识点
注解
@configuration
作用:用于配置定义类,替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,方法可被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类扫描到,并用于构建bean定义,初始化Spring容器。
相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)
@configuration等价于<Beans></Beans>
@Bean等价于<Bean></Bean>
@ComponentScan等价于<context:component-scan base-package=”com.dxz.demo”/>
注意:被注解的类;
- (1)不可以是final类型;
- (2)不可以是匿名类;
- (3)不可以是静态类。
@profile
作用:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件
- 加在类上@profile(dev),当配置环境为application-dev.propeties时,该类才会被注册(@Configuration)
- 加在方法上@profile(dev),当配置环境为application-dev.propeties时,该方法才会被注册(@Bean)
application.properties配置
spring.profiles.active
使用:spring.profiles.active 配合命名格式:application-{profile}.properties
例如:
- application.properties里配置spring.profiles.active=dev
- app启动时,项目会先从application-dev.properties加载配置,再从application.properties加载配置,两者配置重复时,以application.properties为准。
- 当无配置spring.profiles.active时,默认命名格式为application-default.properties
- dev/pro/test 分别为开发环境 生产环境 测试环境