Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:787707172,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
Spring boot的特点
1. 创建独立的Spring应用程序
2. 嵌入的Tomcat,无需部署WAR文件
3. 简化Maven配置
4. 自动配置Spring
5. 提供生产就绪型功能,如指标,健康检查和外部配置
6. 绝对没有代码生成和对XML没有要求配置
Spring boot的优点
spring boot 可以支持你快速的开发出 restful 风格的微服务架构
自动化确实方便,做微服务再合适不过了,单一jar包部署和管理都非常方便。只要系统架构设计合理,大型项目也能用,加上nginx负载均衡,轻松实现横向扩展
spring boot 要解决的问题, 精简配置是一方面, 另外一方面是如何方便的让spring生态圈和其他工具链整合(比如redis, email, elasticsearch)
Spring boot的使用
1、maven配置文件
<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springboot.samplespring-boot-sample0.0.1-SNAPSHOTwarspring-boot-sampleSpring Boot Sample Web Applicationorg.springframework.bootspring-boot-starter-parent1.3.2.RELEASEUTF-81.8org.springframework.bootspring-boot-starter-webmysqlmysql-connector-javaorg.springframework.bootspring-boot-starter-jdbcorg.springframework.bootspring-boot-configuration-processortrueorg.springframework.bootspring-boot-maven-plugin
2、application类
@SpringBootApplication@ServletComponentScanpublic class SpringBootApplication extends SpringBootServletInitializer { private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class); public static void main(String[] args) {SpringApplication.run(SpringBootSampleApplication.class, args);}}
3、配置类
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:787707172,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
@Repository@Component@Configurationpublic class MyWebAppConfigurer extends WebMvcConfigurerAdapter implements EnvironmentAware{private static final Logger logger = LoggerFactory.getLogger(MyWebAppConfigurer.class);private RelaxedPropertyResolver propertyResolver;@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 多个拦截器组成一个拦截器链// addPathPatterns 用于添加拦截规则// excludePathPatterns 用户排除拦截registry.addInterceptor(new MyInterceptor1()).addPathPatterns("/**");registry.addInterceptor(new MyInterceptor2()).addPathPatterns("/**");super.addInterceptors(registry);}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/res/**").addResourceLocations("classpath:/res/");// 可以直接使用addResourceLocations 指定磁盘绝对路径,同样可以配置多个位置,注意路径写法需要加上file:registry.addResourceHandler("/imgs/**").addResourceLocations("file:D:/imgs/");super.addResourceHandlers(registry);}}
4、添加filter
@WebFilter(filterName="myFilter