一 前言
轮道者甚繁,做而行者盖寡
写博客更倾向于理论,理论是一个引路者,只是听理论很难有大的突破,所以我想通过这一系列文章,更多的产生实际的效果,希望对springboot的学习有更深刻的认识
## 二 Spring的成长
谈及springboot一定就会想到spring,更多人会认为springboot是spring的升级版本,但是具体有哪些升级呢,这里就来说一说,spring的成长
1 spring的缺点
谋定而后动
,所有语言中java的市场最大,java中spring又是当之无愧的大哥,为什么他是大哥呢,可能就是被说的滚瓜烂熟的IOC和AOP,那再具体点呢,可能阅读源码的人会知道,Spring对事务进行了抽象,使用了AOP使事务编程变得很简化,还有springMVC让web编程如丝般顺滑。
那他的缺点呢,如果经理过spring低版本开发的人一定知道,要很多的配置文件,还要配置tomcat,因为他本身并不具备启动的功能,所以就出现很多繁琐的配置,于是,他并不完美。谋定
就是要谋他的问题,后动就是改造他,让他成长的更强大,于是springboot登场了。
三 SpringBoot
特性
- 创建独立的spring应用
- 直接创建TOMCAT,Jetty等web容器
- 提供固化的star,简化构架配置
- 当条件满足时自动装配Spring或第三方类库
- 提供运维
- 不需要xml配置
值得一提的是springboot2.0 必须是jdk8
特性实现
直接创建TOMCAT,Jetty等web容器,提供固化的star
FE:使用JETTY作为容器,排除tomcat star依赖使用jetty依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- Exclude the Tomcat dependency --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- Use Jetty instead --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
- 自动装配
官网的解释是,尝试去装配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 @interface SpringBootApplication {