servletcontainerinitializer
springmvc的另一种不要xml配置的类:WebMvcConfigurationSupport
springmvc不要xml的配置类(比如配置json转换器、参数转换器):WebMvcConfigurationSupport
springboot项目如果要以war包的方式运行的话,可以
@springBootApplication注解的类继承一个SpringBootservletInitialize类,再添加EnableMVC的注解,重写 configure方法
ImportSelector接口,会返一个字符串数组,再加字符串数组里的类名加载到spring容器中。
SpringBootApplication(Exclude={排除一个类})
springboot 读取yml文件:
@component
@ConfigrurationProperties(prefix="user")
Public class User{}
@Value("")支持sple表达式
加载指定的yml
@component
@PropertySourcce("classpath:user.yml")
@ConfigrurationProperties
Public class User{}
ConditionOnXXXX
ConditionOnOnBean(A)
public class B
,在A这个Bean存在时B也在spring容器中,
@EnableConfiguratonPropterties(RegisterCOnfigProperties.class),让spring容器加载RegisterCOnfigProperties这个配置类。
SpringBoot实现json 转换器的作法是
@Bean
FastJsonHttpMessageConvert,因为springboot会扫描所有HttpMessageConvert类并放到一个集合中
springboot实现springmvc自动配置的类:WebMvcAutoConfiguration
@Component
继承接口ApplicationListener<事件>后重写onApplicationEvent方法
ApplicationContext.publishEvent()
@Bean
public TomcatServletFactory ,注入这样的一个bean后,spring就会用这个bean作为容器
@Bean
public SebServerFactoryCustomizer 获取当前的web容器并自行配置。
@springbootApplication里有@enableAutoConfiguration,@enableAutoConfiguration有@import(AutoconfigurationImportSelector)
AutoconfigurationImportSelector会将所有字串类名实(.factory文件)例化。
springBoot在内嵌web容器的情况下不会执行servlet3.0规范的ServletContainerInitializer或spring的WebApplicationInitializer接口.这时可以用spring的另一个servletContextInitializer接口并注册为bean
springBoot以war包的方式运行,
@springBootApplication()
public class App extends SpringBootServletInitializer{}
原文:https://www.cnblogs.com/xuxu-dragon/p/12924604.html