springBoot学习总结

springBoot

@SpringBootApplication:说明这是一个springBoot应用
@SpringBootTest:说明这个是springBoot的单元测试
@RunWith(SpringRunner.class)单元测试用spring的驱动器,这样就可以使用@Autowired	等自动注入。
yml文件和properties文件可同时使用,为互补关系。还有xml配置文件。

将配置文件中的配置跟配置类绑定:

	@ConfigurationProperties(prefix="xxx")指定以什么开头的配置项跟配置类绑定。
	@Componet只有将配置类同时设置成组件,才能被容器识别并绑定。或用@EnableConfigrationProperties(xxxProperties.class)让某个只配置了@ConfigurationProperties的配置类生效。
	@PropertySource(value={"classpath:xxx.properties"})指定非application.properties之外的properties文件。此注解不支持yml文件。
向容器中添加组件:
	让xml配置文件生效:
		@ImporResource(locations={"classpath:xxx.xml"})
	使用注解方式:
		@Configuration:告诉spring这是一个配置类,用以替代xml配置文件。不需要@Componet
		@Bean:向容器中注入一个指定的类对象。方法名即要注入容器的组件名称beanId。

配置文件中使用占位符

	${random.int}${random.uuid}随机一个数
	${xxx.xxx:yyy}可以引用前面配置配置过的属性,冒号后面的值表示找不到时的默认值。

多环境支持profile:

	方式1:多profile文件形式:
		appliction-dev.propertiest,application-prod.properties
		默认使用application.properties文件
	方式2:多profile文档块模式:
		yml文件用---分割,用spring.profiles:dev标明这是开发环境等。
	激活方式:
		配置文件:spring.profiles.active=dev
		命令行:Program arguments = --spring.profiles.active=dev
		jvm参数:-Dspring.profiles.active=dev

配置文件的加载位置和顺序:

	springBoot启动会扫描以下位置的application.properties或application.yml文件作为springBoot的默认配置文件。
		- file: ./config/ 	(相对于项目跟目录)
		- file: ./		(相对于项目跟目录)
		- classpath: /config/	(相对于类路径)
		- classpath: /		(相对于类路径)
	以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置的内容。
	也可以通过(jvm参数:spring.config.location=系统的绝对路径)来改变默认配置。
配置项目的访问路径:
	server.context-path=/myProject

自动配置原理:

	spring启动时会从类路径下META-INF/spring.factories里配置的所有EnableAutoConfigration的值加入到容器中。
	每个xxxAutoConfigration类会根据不同条件向容器中添加各种组件。
	同时会用@EnableConfigrationProperties(xxxProperties.class)将配置文件里的配置项跟类属性进行绑定,供自己用。

日志框架:

	日志门面(日志的抽象层):JCL(Jakarta Commons Logging)、SLF4J(Simple Logging Facade for Java)、jboss-Logging
	日志实现:Log4j、JUL(java.util.logging)、Log4j2、Logback
	推荐使用组合:SLF4J+Logback
	如果已使用其它日志实现也可以用jcl-over-slf4j.jar、log4j-over-slf4j.jar等适配jar包进行转换。

自定义场景启动器(starter)

	共需要创建2个项目:先创建一个只有META-INFO的项目xxx-spring-boot-starter项目,让它依赖xxx-starter-autoconfigurer项目。
	项目xxx-spring-boot-starter的META-INFO/spring.factories文件中要有org.springframwork.boot.autoconfigure.EnableAutoConfiguration=\xxxAutoConfiguration
	项目xxx-starter-autoconfigurer有一个xxxAutoConfiguration自动配置类。

你可能感兴趣的:(java,springBoot)