第一篇--第3章 Spring Boot

第 3 章 Spring Boot

3.1 Spring Boot概览

3.1.1 SpringBoot发展背景

约定大于配置的理念, 解决Spring配置复杂的问题

3.1.2 Springboot特点

可以帮助开发人员快速构建出基于Spring的应用, 包含如下特性:

  • 为开发者提供Spring快速入门体验
  • 内嵌Tomcat和Jetty容器, 不需要再部署到Web容器中
  • 提供实现自动化配置的基础设施
  • 开箱即用, 没有代码生成, 也无需xml配置文件

3.1.3 Springboot启动器

启动器可以看成是一系列依赖模块的组合, 也是Springboot可以快速搭建项目的实用助手, 这些启动器将不同的第三方组件依赖进行了封装组合, 形成一个易用的套件库, 常见的有:
Spring Boot启动器
知识点

3.2 快速入门

可以直接用IDEA创建一个Springboot项目

3.3 安装配置

Springboot支持内嵌的容器:
支持内嵌的Servlet容器
所以Springboot构建的Web应用可运行在任何支持Servlet3.0+及Java6.0的Web容器中。

Spring Boot 实际上是一些类库的集合, 能够被任意项目的构建系统引用; 为了方便, Spring Boot提供了一个命令行客户端运行工具(Spring Boot CLI), 可用来运行和测试Spring Boot应用

3.3.1 基于Maven环境配置

为了更容易地管理依赖版本和使用默认配置,Spring Boot提供了一个 pom 根配置,在项目工程中可以直接继承它:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- 1. 继承Spring Boot默认配置, 并指定版本号 -->
    <!-- 这样在 2 处可以不用声明版本号 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!-- 2. 添加项目所需的启动类和包 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <!-- 3. 配置运行插件 -->
        <plugins>
            <!-- 这个是Maven插件, 为Spring Boot提供Maven操作 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

关于第3点,可以配置项目插件, 如Maven:
Maven
双击spring-boot:run就会采用内嵌的Tomcat运行应用; 如果想使用Jetty, 只需在依赖中添加Jetty启动器(spring-boot-starter-jetty)即可

3.3.2 基于Gradle环境配置

3.3.3 基于Spring Boot CLI环境配置

3.4 持久层

演示如何使用Spring Boot提供的JDBC启动器来实现持久层

3.5 业务层

在编写业务层代码时有两个重要的思想:

  1. 编写正确的业务逻辑
  2. 对业务事务的管控

在Spring Boot中使用事务方法:

(1) 在主类 Application 上标注 @EnableTransactionManagement 注解, 这一步是开启事务支持

(2) 在访问的Service 方法上标注 @Transactional 注解即可, 如果将该注解标注在 Service类上, 那勒种所有方法都将被事务增强, 建议不要在类级别上标注

3.6 展现层

3.7 运维支持

当应用部署到生产环境时,需要各种运维相关的工具支持,如监控应用的各种性能指标、运行信息和应用状态等,Spring Boot整合了一些第三方的类库,形成了一个功能完备的启动器,Actuator。只需添加如下依赖即可:

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

Spring Boot默认提供的健康状态监测:

  • 自身应用
  • 关系数据库连接
  • MongoDB、Redis
  • Solr、Elasticsearch
  • Rabbit MQ

这些服务都可以在application.properties的management.health.*选项中配置:

# 数据库监控配置
management.health.db.enabled=true
management.health.defaults.enabled=true
# 应用磁盘空间检查配置
management.health.diskspace.enabled=true
management.health.diskspace.path=D:/masterSpring/code
management.health.diskspace.threshold=0

可以在浏览器中访问 http://localhost:8080/health 查看服务信息, 其他的还有:
健康检查服务

发布了14 篇原创文章 · 获赞 0 · 访问量 744

猜你喜欢

转载自blog.csdn.net/JasonWeng/article/details/103773397