Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。




Springboot中配置Netty为启动服务器 springboot内置netty_springboot使用netty容器


如果想学习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