一.前言
轮道者甚繁,做而行者盖寡
写博客更倾向于理论,理论是一个引路者,只是听理论很难有大的突破,所以我想通过这一系列文章,更多的产生实际的效果,希望对spring boot的学习有更深刻的认识
二.Spring的成长
谈及spring boot一定就会想到spring,更多人会认为spring boot是spring的升级版本,但是具体有哪些升级呢,这里就来说一说,spring的成长。
spring的缺点:
谋定而后动
,所有语言中java的市场最大,java中spring又是当之无愧的大哥,为什么他是大哥呢,可能就是被说的滚瓜烂熟的IOC和AOP,那再具体点呢,可能阅读源码的人会知道,Spring对事务进行了抽象,使用了AOP使事务编程变得很简化,还有springMVC让web编程如丝般顺滑。
那他的缺点呢,如果经理过spring低版本开发的人一定知道,要很多的配置文件,还要配置tomcat,因为他本身并不具备启动的功能,所以就出现很多繁琐的配置,于是,他并不完美。
谋定
就是要谋他的问题,后动就是改造他,让他成长的更强大,于是spring boot登场了。
三.Spring Boot
特性
值得一提的是spring boot 2.0 必须是jdk8
创建独立的spring应用
直接创建TOMCAT,Jetty等web容器
提供固化的star,简化构架配置
当条件满足时自动装配Spring或第三方类库
提供运维
不需要xml配置
特性实现
官网的解释是,尝试去装配class path下开发人员添加的jar依赖,不一定装配。使用@EnableCoinfigurtion注解来开启自动装配,而@EnableCoinfigurtion注解是由引导类@SpringbootApplication注解激活的,同时他还激活@ComponentScan以及@Configuration
@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters={@Filter(type=FilterType.CUSTOM,classes={TypeExcludeFilter.class}),@Filter(type=FilterType.CUSTOM,classes={AutoConfigurationExcludeFilter.class})})public@interfaceSpringBootApplication{
直接创建TOMCAT,Jetty等web容器,提供固化的star
FE:使用JETTY作为容器,排除tomcat star依赖使用jetty依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!--ExcludetheTomcatdependency--><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!--UseJettyinstead--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency>
自动装配