zoukankan      html  css  js  c++  java
  • 初探 Spring Boot

      近些年Spring Boot都特别火,一直都想来学习学习,奈何近期公司项目繁忙,一直都没有时间来学习,今天终于是休息一天,于是来一睹 SpringBoot 的风采。

    一、什么是Spring Boot

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

    二、Spring Boot 的特点

      1. Spring Boot 可以创建键独立的Spring应用程序,为基于 Spring 的开发提供了更快的如门体验。它并不是对 Spring 功能的增强,而是提供了一种快速使用Spring的方式。

      2. Spring Boot 它内嵌Tomcat,不需要部署 war 文件。

      3. Spring Boot 简化了Maven 配置,配置 spring-boot-starter-parent 之后,不需要再再其他包后配置所需 jar 包的版本,Spring Boot 会为我们选择最合适的版本。

      4. Spring Boot 自动配置Spring。

      5. Spring Boot 提供了一些大型项目中常见的非功能特性,如:生产就绪型功能,如指标,健康检查和外部配置等。

      6. Spring Boot 开箱即用,没有代码生成,也不需要 XML 配置。同时也可以修改默认值来满足特定需求。

    三、简单的 Demo 

      开发环境:我这里使用的是 eclipse ,JDK使用的是1.8 , 项目管理工具使用的是Maven。

     

      1. 创建一个 Maven 项目

      2. 在pom.xml 中添加 spring-boot-starter-parent 依赖包,这个包加入之后,在后面需要引入的包中就不需要再指定版本号。

    1 <!-- spring boot 父节点依赖,引入这个包之后相关引入
    2   就不需要添加version配置,spring boot会选择最合适的版本进行添加 -->
    3   <parent>
    4       <groupId>org.springframework.boot</groupId>
    5       <artifactId>spring-boot-starter-parent</artifactId>
    6       <version>1.4.0.RELEASE</version>
    7   </parent>

      3. 指定 JDK ,如果不指定,则默认为1.6

    1 <properties>
    2       <!-- 指定JDK 1.8, 不设置默认1.6 -->
    3     <java.version>1.8</java.version>
    4   </properties>

      4. 添加 spring-boot-starter-web 依赖,来支持全栈式Web开发,包括Tomcat和spring-webmvc。

    1     <dependency>
    2         <groupId>org.springframework.boot</groupId>
    3         <artifactId>spring-boot-starter-web</artifactId>
    4     </dependency>

      5. 创建 Controller ,这里@RestController 相当于spring的 @Controller 和 @requestBody

    /**
     * 这里的 @RestController 相当于spring的 @Controller 和 @requestBody
     * @author Wuyouxin
     *
     */
    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String hello () {
            return "hello Spring Boot";
        } 
    }

      6. 创建启动类 APP.main() 方法, 这里的SpringBootApplication 就是在指定一个Spring Boot 的应用。

     1 /**
     2  * 这里的SpringBootApplication 就是在指定一个Spring Boot 的应用
     3  * 
     4  * @author Wuyouxin
     5  *
     6  */
     7 @SpringBootApplication
     8 public class App {
     9     
    10     public static void main( String[] args ) {
    11         
    12         //在Main方法中启动应用程序
    13         SpringApplication.run(App.class, args);
    14     }
    15 }

      SpringBoot项目通过SpringApplication.run(App.class, args)来启动,下面这位老铁在它的文中详细解读了 run 方法的源码,有兴趣的朋友可以去看一下:https://www.jb51.net/article/120362.htm

      7. 启动main方法 

        在启动的日志中有Tomcat的端口。

      8. 使用 127.0.0.1:8080/hello 进行验证

      访问成功。

    四、最后附上 Spring Boot Starter 的一些依赖包

      1. spring-boot-starter 

      这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。

      2. spring-boot-starter-amqp 

      通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol. 。

      3. spring-boot-starter-aop 

      支持面向方面的编程即AOP,包括spring-aop和AspectJ。

      4. spring-boot-starter-artemis 

      通过Apache Artemis支持JMS的API(Java Message Service API. 。

      5. spring-boot-starter-batch 

      支持Spring Batch,包括HSQLDB数据库。

      6. spring-boot-starter-cache 

      支持Spring的Cache抽象。

      7.spring-boot-starter-cloud-connectors 

      支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。

      8. spring-boot-starter-data-elasticsearch 

      支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。

      9.spring-boot-starter-data-gemfire 

      支持GemFire分布式数据存储,包括spring-data-gemfire。

      10. spring-boot-starter-data-jpa 

      支持JPA(Java Persistence API. ,包括spring-data-jpa、spring-orm、Hibernate。

      11. spring-boot-starter-data-mongodb 

      支持MongoDB数据,包括spring-data-mongodb。

      12. spring-boot-starter-data-rest 

      通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。

      13. spring-boot-starter-data-solr 

      支持Apache Solr搜索平台,包括spring-data-solr。

      14. spring-boot-starter-freemarker 

      支持FreeMarker模板引擎。

      15. spring-boot-starter-groovy-templates 

      支持Groovy模板引擎。

      16.spring-boot-starter-hateoas 

      通过spring-hateoas支持基于HATEOAS的RESTful Web服务。

      17. spring-boot-starter-hornetq 

      通过HornetQ支持JMS。

      18. spring-boot-starter-integration 

      支持通用的spring-integration模块。

      19. spring-boot-starter-jdbc 

      支持JDBC数据库。

      20. spring-boot-starter-jersey 

      支持Jersey RESTful Web服务框架。

      21. spring-boot-starter-jta-atomikos 

      通过Atomikos支持JTA分布式事务处理。

      22. spring-boot-starter-jta-bitronix 

      通过Bitronix支持JTA分布式事务处理。

      23. spring-boot-starter-mail 

      支持javax.mail模块。

      24. spring-boot-starter-mobile 

      支持spring-mobile。

      25. spring-boot-starter-mustache 

      支持Mustache模板引擎。

      26. spring-boot-starter-redis 

      支持Redis键值存储数据库,包括spring-redis。

      27. spring-boot-starter-security 

      支持spring-security。

      28. spring-boot-starter-social-facebook 

      支持spring-social-facebook

      29. spring-boot-starter-social-linkedin 

      支持pring-social-linkedin

      30. spring-boot-starter-social-twitter 

      支持pring-social-twitter

      31. spring-boot-starter-test 

      支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

      32. spring-boot-starter-thymeleaf 

      支持Thymeleaf模板引擎,包括与Spring的集成。

      33. spring-boot-starter-velocity 

      支持Velocity模板引擎。

      34. spring-boot-starter-web 

      S支持全栈式Web开发,包括Tomcat和spring-webmvc。

      35. spring-boot-starter-websocket 

      支持WebSocket开发。

      36. spring-boot-starter-ws 

      支持Spring Web Services。 

    Spring Boot应用启动器面向生产环境的还有2种,具体如下:

      1. spring-boot-starter-actuator 

      增加了面向产品上线相关的功能,比如测量和监控。

      2. spring-boot-starter-remote-shell 

      增加了远程ssh shell的支持。 

    Spring Boot应用启动器还有一些替换技术的启动器,具体如下:

      1. spring-boot-starter-jetty 

      引入了Jetty HTTP引擎(用于替换Tomcat. 。

      2. spring-boot-starter-log4j 

      支持Log4J日志框架。

      3. spring-boot-starter-logging 

      引入了Spring Boot默认的日志框架Logback。

      4. spring-boot-starter-tomcat 

      引入了Spring Boot默认的HTTP引擎Tomcat。

      5. spring-boot-starter-undertow 

      引入了Undertow HTTP引擎(用于替换Tomcat. 。

    1. spring-boot-starter 
      这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。

    2. spring-boot-starter-amqp 
      通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol. 。

    3. spring-boot-starter-aop 
      支持面向方面的编程即AOP,包括spring-aop和AspectJ。

    4. spring-boot-starter-artemis 
      通过Apache Artemis支持JMS的API(Java Message Service API. 。

    5. spring-boot-starter-batch 
      支持Spring Batch,包括HSQLDB数据库。

    6. spring-boot-starter-cache 
      支持Spring的Cache抽象。

    7. spring-boot-starter-cloud-connectors 
      支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。

    8. spring-boot-starter-data-elasticsearch 
      支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。

    9. spring-boot-starter-data-gemfire 
      支持GemFire分布式数据存储,包括spring-data-gemfire。

    10. spring-boot-starter-data-jpa 
      支持JPA(Java Persistence API. ,包括spring-data-jpa、spring-orm、Hibernate。

    11. spring-boot-starter-data-mongodb 
      支持MongoDB数据,包括spring-data-mongodb。

    12. spring-boot-starter-data-rest 
      通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。

    13. spring-boot-starter-data-solr 
      支持Apache Solr搜索平台,包括spring-data-solr。

    14. spring-boot-starter-freemarker 
      支持FreeMarker模板引擎。

    15. spring-boot-starter-groovy-templates 
      支持Groovy模板引擎。

    16. spring-boot-starter-hateoas 
      通过spring-hateoas支持基于HATEOAS的RESTful Web服务。

    17. spring-boot-starter-hornetq 
      通过HornetQ支持JMS。

    18. spring-boot-starter-integration 
      支持通用的spring-integration模块。

    19. spring-boot-starter-jdbc 
      支持JDBC数据库。

    20. spring-boot-starter-jersey 
      支持Jersey RESTful Web服务框架。

    21. spring-boot-starter-jta-atomikos 
      通过Atomikos支持JTA分布式事务处理。

    22. spring-boot-starter-jta-bitronix 
      通过Bitronix支持JTA分布式事务处理。

    23. spring-boot-starter-mail 
      支持javax.mail模块。

    24. spring-boot-starter-mobile 
      支持spring-mobile。

    25. spring-boot-starter-mustache 
      支持Mustache模板引擎。

    26. spring-boot-starter-redis 
      支持Redis键值存储数据库,包括spring-redis。

    27. spring-boot-starter-security 
      支持spring-security。

    28. spring-boot-starter-social-facebook 
      支持spring-social-facebook

    29. spring-boot-starter-social-linkedin 
      支持pring-social-linkedin

    30. spring-boot-starter-social-twitter 
      支持pring-social-twitter

    31. spring-boot-starter-test 
      支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

    32. spring-boot-starter-thymeleaf 
      支持Thymeleaf模板引擎,包括与Spring的集成。

    33. spring-boot-starter-velocity 
      支持Velocity模板引擎。

    34. spring-boot-starter-web 
      S支持全栈式Web开发,包括Tomcat和spring-webmvc。

    35. spring-boot-starter-websocket 
      支持WebSocket开发。

    36. spring-boot-starter-ws 
      支持Spring Web Services。 
      Spring Boot应用启动器面向生产环境的还有2种,具体如下:

    37. spring-boot-starter-actuator 
      增加了面向产品上线相关的功能,比如测量和监控。

    38. spring-boot-starter-remote-shell 
      增加了远程ssh shell的支持。 
      最后,Spring Boot应用启动器还有一些替换技术的启动器,具体如下:

    39. spring-boot-starter-jetty 
      引入了Jetty HTTP引擎(用于替换Tomcat. 。

    40. spring-boot-starter-log4j 
      支持Log4J日志框架。

    41. spring-boot-starter-logging 
      引入了Spring Boot默认的日志框架Logback。

    42. spring-boot-starter-tomcat 
      引入了Spring Boot默认的HTTP引擎Tomcat。

    43. spring-boot-starter-undertow 
      引入了Undertow HTTP引擎(用于替换Tomcat. 。

  • 相关阅读:
    数论 欧几里德算法 以及 欧几里得拓展
    数论 快速幂的原理讲解
    汉诺塔模板
    C++ 迭代器运算
    C++ STL vector set map 简易用法
    C++ 使用指向函数的指针数组
    Codeforces 718C 线段树+矩乘
    BZOJ 2506 分块
    Codeforces 455D 分块+链表
    Codeforces 19E 树上差分
  • 原文地址:https://www.cnblogs.com/wuyx/p/9221402.html
Copyright © 2011-2022 走看看