SpringBoot常用配置简介
2016-11-20 16:14
489 查看
SpringBoot常用配置简介
1. SpringBoot中几个常用的配置的简单介绍
一个简单的Spring.factories# Bootstrap components org.springframework.cloud.bootstrap.BootstrapConfiguration=\ org.springframework.cloud.config.server.bootstrap.ConfigServerBootstrapConfiguration # Application listeners org.springframework.context.ApplicationListener=\ org.springframework.cloud.config.server.bootstrap.ConfigServerBootstrapApplicationListener # Autoconfiguration org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.cloud.config.server.config.EncryptionAutoConfiguration,\ org.springframework.cloud.config.server.config.SingleEncryptorAutoConfiguration
BootstrapConfiguration简介
Spring.factories中的配置项, org.springframework.cloud.bootstrap.BootstrapConfiguration,会在Spring启动之前的准备上下文阶段将其加入到容器中。我们在介绍 @Configuration配置解析一文中曾详细解释Configuration中的解析。BootstrapConfiguration是在刷新(refresh)阶段将class作为预选的配置类@Configuration注入到容器中的,在@Configuration配置解析阶段会解析此class。
加载BootstrapConfiguration配置的类
List<String> names = SpringFactoriesLoader .loadFactoryNames(BootstrapConfiguration.class, classLoader); for (String name : StringUtils.commaDelimitedListToStringArray( environment.getProperty("spring.cloud.bootstrap.sources", ""))) { names.add(name); } // TODO: is it possible or sensible to share a ResourceLoader? SpringApplicationBuilder builder = new SpringApplicationBuilder() .profiles(environment.getActiveProfiles()).bannerMode(Mode.OFF) .environment(bootstrapEnvironment) .properties("spring.application.name:" + configName) .registerShutdownHook(false).logStartupInfo(false).web(false); List<Class<?>> sources = new ArrayList<>(); for (String name : names) { Class<?> cls = ClassUtils.resolveClassName(name, null); try { cls.getDeclaredAnnotations(); } catch (Exception e) { continue; } sources.add(cls); } builder.sources(sources.toArray(new Class[sources.size()])); AnnotationAwareOrderComparator.sort(sources); final ConfigurableApplicationContext context = builder.run();
加载BootstrapConfiguration配置的类
private void prepareContext(ConfigurableApplicationContext context,ConfigurableEnvironment environment, SpringApplicationRunListeners listeners,ApplicationArguments applicationArguments, Banner printedBanner) { context.setEnvironment(environment); postProcessApplicationContext(context); applyInitializers(context); listeners.contextPrepared(context); if (this.logStartupInfo) { logStartupInfo(context.getParent() == null); logStartupProfileInfo(context); } // Add boot specific singleton beans context.getBeanFactory().registerSingleton("springApplicationArguments", applicationArguments); if (printedBanner != null) { context.getBeanFactory().registerSingleton("springBootBanner", printedBanner); } // Load the sources Set<Object> sources = getSources();//获取需要加载的class源 Assert.notEmpty(sources, "Sources must not be empty"); load(context, sources.toArray(new Object[sources.size()]));//加载class listeners.contextLoaded(context); }
ApplicationListener简介
org.springframework.context.ApplicationListener会在SpringBoot中几个典型事件产生后调用onApplicationEvent方法。详见Spring事件发布系统。
Autoconfiguration简介
org.springframework.boot.autoconfigure.EnableAutoConfiguration是SpringBoot中最常见配置,用于自动配置。只要有@EnableAutoConfiguration注解,该配置的所有类都会自动加载到Spring容器中。
相关文章推荐
- SpringBoot常用配置
- SpringBoot学习-第二章 常用配置方式-<Spring Boot 实战>
- SpringBoot常用配置介绍
- Spring Boot 一些常用的pom配置
- 疯狂Spring Cloud连载(3)Spring Boot简介与配置
- SpringBoot常用配置介绍
- 06-SpringBoot——Spring常用配置-Bean的初始化和销毁
- SpringBoot之LogBack常用配置
- 08-SpringBoot——Spring常用配置-事件
- springboot入门(二)--springboot常用注解及配置
- spring-boot-started-logging logback常用配置之<filter>标签详解
- 04-SpringBoot——Spring常用配置-Bean的Scope
- Spring Boot 菜鸟教程 application.properties 常用配置
- 疯狂Spring Cloud连载(3)Spring Boot简介与配置
- spring-boot-started-logging logback常用配置之<filter>标签详解
- spring-boot-starter-logging logback常用配置之<appender>标签详解
- SpringBoot常用配置 application.yml /application.properties常用配置介绍
- Common Spring Boot Properties(常用配置)
- SpringBoot常用配置 application.yml /application.properties常用配置介绍
- springboot心得笔记-常用配置