SpringBoot对比传统开发以及自身的优缺点

 

        SpringBoot是伴随着Spring4.0诞生的,继承了Spring的优势,一经推出,引发了巨大的反向;目前Spring
 Boot的版本为2.1.0,须要Java7及Spring Framework4.1.5以上的支持。若是想在Java6下使用它,须要一些额外的
设置。

Spring Boot的优势:

使用Java或Groovy开发基于Spring的应用程序很是容易。html

它减小了大量的开发时间并提升了生产力。java

它避免了编写大量的样板代码,注释和XML配置。web

Spring Boot应用程序与其Spring生态系统(如Spring JDBC,Spring ORM,Spring Data,Spring Security等)集成很是容易。spring

它遵循“自用默认配置”方法,以减小开发工做量。数据库

它提供嵌入式HTTP服务器,如Tomcat,Jetty等,以开发和测试Web应用程序很是容易。安全

它提供CLI(命令行界面)工具从命令提示符,很是容易和快速地开发和测试Spring Boot(Java或Groovy)应用程序。springboot

它提供了许多插件来开发和测试Spring启动应用程序很是容易使用构建工具,如Maven和Gradle。服务器

它提供了许多插件,以便与嵌入式和内存数据库工做很是容易。mvc

Spring Boot的核心功能

(1)独立运行的Spring项目框架

Spring Boot能够以jar包的形式进行独立的运行,使用:java -jar xx.jar 就能够成功的运行项目,或者在应用项目的主程序中运行main函数便可;

(2)内嵌的Servlet容器

内嵌容器,使得咱们能够执行运行项目的主程序main函数,是想项目的快速运行;

主程序代码SpringbootDemoApplication.java

  1.  
    package com.xuliugen.demo;
  2.  
     
  3.  
    import org.springframework.boot.SpringApplication;
  4.  
    import org.springframework.boot.autoconfigure.SpringBootApplication;
  5.  
     
  6.  
    @SpringBootApplication
  7.  
    public class SpringbootDemoApplication {
  8.  
     
  9.  
    public static void main(String[] args) {
  10.  
    SpringApplication.run(SpringbootDemoApplication.class, args);
  11.  
    }
  12.  
    }

(3)提供starter简化Manen配置

Spring Boot提供了一系列的starter pom用来简化咱们的Maven依赖,下边是建立一个web项目中自动包含的依赖,使用的starter pom以来为:spring-boot-starter-web

spring-boot-starter-web:支持全栈web开发,里面包括了Tomcat和Spring-webmvc。

spring-boot-starter-mail:提供对javax.mail的支持.

spring-boot-starter-ws: 提供对Spring Web Services的支持

spring-boot-starter-test:提供对经常使用测试框架的支持,包括JUnit,Hamcrest以及Mockito等。

spring-boot-starter-actuator:支持产品环境下的一些功能,好比指标度量及监控等。

spring-boot-starter-jetty:支持jetty容器。

spring-boot-starter-log4j:引入默认的log框架(logback) 

Spring Boot官网还提供了不少的starter pom,请参考:

http://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter

这里写图片描述

(4)自动配置Spring

Spring Boot会根据咱们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,这样一来就大大的简化了咱们的配置。固然,这只是Spring考虑到的大多数的使用场景,在一些特殊状况,咱们还须要自定义自动配置;

(5)应用监控

Spring Boot提供了基于http、ssh、telnet对运行时的项目进行监控;

SpringBoot缺点

Spring Boot做为一个微框架,离微服务的实现仍是有距离的。springboot 只是为了提升开发效率,是为了提高生产力的。

没有提供相应的服务发现和注册的配套功能,自身的acturator所提供的监控功能,也须要与现有的监控对接。没有配套的安全管控方案,对于REST的落地,还须要自行结合实际进行URI的规范化工做。

注意:

        将现有或传统的Spring Framework项目转换为Spring Boot应用程序是一个很是困难和耗时的过程。它仅适用于全新Spring项目。