更多干货
- spring-boot系列一 之restfull api与多环境配置
- springboot系列二之 日志
- SpringBoot系列三之 MVC 模版引擎
- SpringBoot 2.0.0.M7 系列四 异常处理
- springboot 2.0.0.M7之 注解 与 配置
- springboot 2.0.0.M7 配置mvc
- springboot 2.0.0.M7 之 Servlet Listener Filter
- springboot 2.0.0.M7 之 跨域
- springboot 2.0.0.M7 之使用mysql
- spring boot 2.0.0.M7 之 数据库-事务处理
- springboot 2.0.0.M7 之 h2 嵌入式数据库的使用
- springboot 2.0.0.M7 之 数据库-redis
- Spring Boot 2.0.0.M7 中使用Swagger2构建RESTful API文档
- Spring Boot 2.0.0.M7 springBoot-mongodb使用
- Spring Boot 2.0.0.M7 使用 Caching-EhCache
- Spring Boot spring boot 使用 Caching-Redis
- Spring Boot 2.0.0.M7 使用异步消息服务-AMQP(RabbitMQ)
- Spring Boot 2.0.0.M7 调用REST服务-如何使用代理
- Spring Boot 2.0.0.M7 发送邮件-使用模板邮件并实现多账号轮询发送
- Spring Boot 2.0.0.M7 使用Spring Session实现集群-redis
- Spring Boot 2.0.0.M7 如何进行远程调试
- Spring Boot 生产准备-基于HTTP的监控
- Spring Boot 集成 Druid
- springboot思维导图
xml 配置文件
- Spring Boot 提倡零配置,即无xml配置,但实际项目中,可能有一些特殊要求你必须使用xml配置,这时我们可以通过Spring 提供的@ImportResource来加载xml配置
- @ImportResource({"classpath:some-context.xml","classpath:other-context.xml"})
Spring Boot 的自动配置的原理
- Spring Boot 在进行SpringApplication 对象实例化时会加载 META-INF/spring.factories文件。将该配置文件中的配置载入到Spring 容器。
- spring-boot.jar/META-INF下的spring.factories
条件注解
SpringBoot内部提供了特有的注解:条件注解(Conditional Annotation)。
- 比如@ConditionalOnBean、@ConditionalOnClass、@ConditionalOnExpression、@ConditionalOnMissingBean等
- @ConditionalOnClass会检查类加载器中是否存在对应的类,如果有的话被注解修饰的类就有资格被Spring容器所注册,否则会被skip。
静态资源
设置静态资源放到指定路径下
- spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/static/
自定义消息转化器
自定义消息转化器,只需要在@Configuration的类中添加消息转化器的@bean加入到Spring容器,就会被Spring boot自动加入到容器中。
@Bean
public StringHttpMessageConverter stringHttpMessageConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
return converter;
}
自定义SpringMVC的配置
有些时候我们需要自己配置SpringMVC而不是采用默认,比如增加一个拦截器,这个时候就得通过继承WebMvcConfigureAdapter 然后重写父类中的方法进行扩展。
@Configuration
public class SpringMVCConfig extends WebMvcConfigurerAdapter{
@Autowired
private UserLoginHandlerInterceptor userLoginHandlerInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(userLoginHandlerInterceptor).addPathPatterns("/api/user/**");
}
}