共计 2013 个字符,预计需要花费 6 分钟才能阅读完成。
SpringBoot
应用 Spring Boot 很容易创立一个独立运行(运行 jar,内嵌 servlet 容器)、准生产级别的基于 Spring 框架的我的项目,应用 Spring Boot 能够不必或者只须要很少的 Spring 配置。
SpringBoot 是 Spring 框架对“约定优先于配置 (Convention Over Configuration)”理念的最佳实际的产物,一个典型的 SpringBoot 利用实质上其实就是一个基于 Spring 框架的利用
Spring Boot 外围性能
1) 独立运行的 Spring 我的项目
Spring Boot 能够以 jar 包的模式独立运行,运行一个 Spring Boot 我的项目只需通过 java–jar xx.jar 来运行。
2) 内嵌 Servlet 容器
Spring Boot 可抉择内嵌 Tomcat、Jetty 或者 Undertow,这样咱们毋庸以 war 包模式部署我的项目。
3) 提供 starter 简化 Maven 配置
Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载,例如,当你应用了 spring-boot-starter-web 时,会主动退出相应的依赖包。
4) 主动配置 Spring
Spring Boot 会依据在类门路中的 jar 包、类,为 jar 包里的类主动配置 Bean,这样会极大地缩小咱们要应用的配置。当然,Spring Boot 只是思考了大多数的开发场景,并不是所有的场景,若在理论开发中咱们须要主动配置 Bean,而 Spring Boot 没有提供反对,则能够自定义主动配置。
5) 准生产的利用监控
Spring Boot 提供基于 http、ssh、telnet 对运行时的我的项目进行监控。
6) 无代码生成和 xml 配置
Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新个性。Spring 4.x 提倡应用 Java 配置和注解配置组合,而 Spring Boot 不须要任何 xml 配置即可实现 Spring 的所有配置。
SpringBoot 的优缺点
1) 长处
- 疾速构建我的项目
- 对支流开发框架的配置无奈集成
- 我的项目能够独立运行,无需内部依赖 Servlet 容器
- 提供运行时的利用监控
- 极大地提高了开发、部署效率
- 与云计算的人造集成
2) 毛病
- 版本迭代速度很快,一些模块改变很大。
- 因为不必本人做配置,报错时很难定位。
- 网上现成的解决方案比拟少。
创立一个 SpringBoot 我的项目
我的项目创立过程就不多说了,idea 或者 TST 还是很容易创立的,在我的项目创立胜利后,咱们会失去一个 SpringBoot 利用的启动类,如上面代码所示:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);
}
}
能够看到,@SpringBootApplication 是一个“三体”构造,实际上它是一个复合 Annotation:
@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 {
...
...
..
}
尽管它的定义应用了多个 Annotation 进行元信息标注,但实际上对于 SpringBoot 利用来说,重要的只有三个 Annotation,而“三体”构造实际上指的就是这三个 Annotation:
- @Configuration
- @EnableAutoConfiguration
- @ComponentScan
所以,如果咱们应用标注如上三个注解的 SpringBoot 启动类,那么整个 SpringBoot 利用仍然能够与之前的启动类性能对等,但每次都写三个 Annotation 显然过于繁琐,所以写一个 @SpringBootApplication 这样的一站式复合 Annotation 显然更不便些。