ramostear.comramostear.com 谭朝红的技术分享博客

格言 编程是一门技术,也是一门艺术 !

Spring Boot 2.0 概述

Spring Boot 2.0 概述

Spring Boot 2.0 概述

Spring Boot 是由Pivotal团队基于Java开发的一个开源框架,可用于构建独立的、可部署的生产环境下的Spring应用。

1 . 什么是微服务?

在介绍Spring Boot之前,我们先聊一聊微服务的概念。Micro Service是一种允许开发人员独立开发和部署服务的一种体系架构。每个服务实例都独立部署和运行,它们具有自身的操作流程。简单来说,微服务就是将传统的庞大的业务应用程序按照某种业务规则(轻量级模型)进行拆分,拆分后,每个服务都有自己的服务上线文边界,以达到服务区域内的自治,同时又可以通过消息总线与其他服务模块进行通信,协同完成某一个业务操作流程。

1.2. 微服务的好处

微服务为开发人员带来了以下的一些优势:

  • 易于部署
  • 简单的可扩展性
  • 与容器兼容
  • 最低限度的硬件配置
  • 开发时间短

2. 什么是Spring Boot?

Spring Boot 为Java开发人员提供了一个优秀的统一平台,开发人员可以利用Spring Boot 开发出一个生产级别的可独立运行的Spring应用程序。通过Spring Boot,开发人员可以使用最少的配置,完成复杂的Spring应用程序设置。

2.1. Spring Boot 的优势

使用Spring Boot进行开发,将具备如下的一些优势:

  • 使得Spring应用程序易于理解和开发
  • 提高开发效率
  • 缩短了软件交付的时间

2.2. Spring Boot 的设计目标

Spring Boot的出现,其追求的目标如下:

  • 弱化使用XML配置文件的方式对Spring应用程序进行设置
  • 以更简单易懂的方式开发生产级别的Spring应用程序
  • 以更短的时间交付可独立运行的Spring应用程序
  • 降低Spring 框架的学习门槛

3. 为什么选择Spring Boot?

要不要选择一门技术入手,需要分析它的用户群体数量、性能指标、普适性和学习成本。就Spring Boot本身而言,其自身具备如下的几个优点:

  • 提供了一种更为优雅和易懂的方式来配置Java Bean、XML和数据库事务
  • 提供了强大的批处理和REST Endpoint管理能力
  • 提供了强大的自动装配能力,减少人工干预的次数
  • 采用注解的方式开发应用程序
  • 极大的简化了依赖管理工作
  • 提供了嵌入式的Servlet容器,如Tomcat 、Jetty等

4. Spring Boot的工作方式

Spring Boot 通过 @EnableAutoConfiguration 注解将存在于项目类路径上的依赖项自动装配到应用程序中,无需其他的人工干预。使用@SpringBootApplication 注解标注一个包含main方法的类,此类就成为Spring Boot应用程序的主入口。@ComponentScan 注解将会触发Spring Boot自动扫描项目中包含的所有组件。

5 . Spring Boot Starter

对于一个大型的项目而言、最让开发人员头疼的事情是如何管理整个项目中的依赖关系和与之对应的版本问题。Spring Boot提供了一组特定的依赖项来帮助开发人员解决此问题。例如,如果要在Spring Boot项目中使用JPA来访问数据库,则只需要在项目中引入spring-boot-starter-data-jpa 依赖项即可。

几乎所有的Spring Boot Starter都遵循相同的命名模式:“spring-boot-starter-*” ,其中的“*”表示一种应用程序的类型名称

下面我们列举几个常用的Spring Boot Starter加以说明:

  • spring-boot-starter-web : 用于依赖Spring web
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • spring-boot-starter-thymeleaf : 用于依赖Thymeleaf模板引擎

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
  • spring-boot-starter-test : 用于依赖单元测试

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    

6 . 自动装配

Spring Boot Auto Configuration会自动将添加到项目中的依赖JAR包完成相应的配置。例如,如果你在pom.xml中引入了MySQL的依赖包,在不添加任何配置的情况下,Spring Boot会自动配置内置数据库。如果需要开启自动装配功能,需要在项目主类上添加@EnableAutoConfiguration注解或者@SpringBootApplication注解:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

@EnableAutoConfiguration
public class Application{
    public static void main(String[] args){
        SpringApplication.run(Application.class);
    }
}

7. Spring Boot 主应用程序

一个Spring Boot的主应用程序需包含两个部分:

  • @SpringBootApplication 注解:用于标注一个类为Spring Boot应用的启动类
  • main 方法:Spring Boot应用程序的主入口

@SpringBootApplication是一个组合注解,它包含了自动装配、组件扫描和Spring Boot配置。我们也可以单独使用@EnableAutoConfiguration@ComponentScan@SpringBootConfiguration 注解来标注主类。

使用@SpringBootApplication进行标注:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application{
    public static void main(Stirng[] args){
        SpringApplication.run(Application.class);
    }   
}

使用@EnableAutoConfiguration@ComponentScan@SpringBootConfiguration 进行标注:

@EnableAutoConfiguration
@ComponentScan
@SpringBootConfiguration
public class Application{
    public static void main(String[] args){
        SpringApplication.run(Application.class);
    }
}

8. 组件扫描

Spring Boot应用程序在程序初始化阶段完成组件扫描的工作。使用@ComponentScan对主类进行标注,将开组件扫描功能:

@ComponentScan
public class Application{
    public static void main(String[] args){
        SpringApplication.run(Application.class);
    }
}

(转载本站文章请注明作者和出处:谭朝红-ramostear.com,未经允许请勿做任何商业用途)

发表评论