Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring Boot使用”约定大于配置“的理念,提供了很多已经集成好的方案,以便程序员在开发应用程序时能做到零配置或极简配置。
Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。
Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。
Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
Spring Boot 可以对正在运行的项目提供监控。
Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。
Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的 starter(启动器),starter 中整合了该场景下各种可能用到的依赖,用户只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置。starter 提供了大量的自动配置,让用户摆脱了处理各种依赖和配置的困扰。所有这些 starter 都遵循着约定成俗的默认配置,并允许用户调整这些配置,即遵循“约定大于配置”的原则。
spring-boot-starter-parent 是所有 Spring Boot 项目的父级依赖,它被称为 Spring Boot 的版本仲裁中心,可以对项目内的部分常用依赖进行统一管理。
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.7.0</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
Spring Boot 项目可以通过继承 spring-boot-starter-parent 来获得一些合理的默认配置,它主要提供了以下特性:
查看 spring-boot-starter- parent 的底层代码,可以发现其有一个父级依赖 spring-boot-dependencies。
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>2.7.0</version>
- <packaging>pom</packaging>
- <name>spring-boot-dependencies</name>
- <description>Spring Boot Dependencies</description>
- <url>https://spring.io/projects/spring-boot</url>
- <licenses>
- <license>
- <name>Apache License, Version 2.0</name>
- <url>https://www.apache.org/licenses/LICENSE-2.0</url>
- </license>
- </licenses>
- <developers>
- <developer>
- <name>Pivotal</name>
- <email>info@pivotal.io</email>
- <organization>Pivotal Software, Inc.</organization>
- <organizationUrl>https://www.spring.io</organizationUrl>
- </developer>
- </developers>
- <scm>
- <url>https://github.com/spring-projects/spring-boot</url>
- </scm>
- <properties>
- <activemq.version>5.16.5</activemq.version>
- <antlr2.version>2.7.7</antlr2.version>
- <appengine-sdk.version>1.9.96</appengine-sdk.version>
- <artemis.version>2.19.1</artemis.version>
- <aspectj.version>1.9.7</aspectj.version>
- <assertj.version>3.22.0</assertj.version>
- ......
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-amqp</artifactId>
- <version>${activemq.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-blueprint</artifactId>
- <version>${activemq.version}</version>
- </dependency>
- ......
- </dependencies>
- </dependencyManagement>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>${build-helper-maven-plugin.version}</version>
- </plugin>
- <plugin>
- <groupId>org.flywaydb</groupId>
- <artifactId>flyway-maven-plugin</artifactId>
- <version>${flyway.version}</version>
- </plugin>
- ......
- </plugins>
- </pluginManagement>
- </build>
- </project>
以上配置中,部分元素说明如下:
spring-boot-dependencies 通过 dependencyManagement 、pluginManagement 和properties 等元素对一些常用技术框架的依赖或插件进行了统一版本管理,例如 Activemq、Spring、Tomcat 等。
SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。
其中,application.yml 是一种使用 YAML 语言编写的文件,它与 application.properties 一样,可以在 Spring Boot 启动时被自动读取,修改 Spring Boot 自动配置的默认值。
YAML 全称 YAML Ain't Markup Language,它是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件。
想要使用 YAML 作为属性配置文件(以 .yml 或 .yaml 结尾),需要将 SnakeYAML 库添加到 classpath 下,Spring Boot 中的 spring-boot-starter-web 或 spring-boot-starter 都对 SnakeYAML 库做了集成, 只要项目中引用了这两个 Starter 中的任何一个,Spring Boot 会自动添加 SnakeYAML 库到 classpath 下。
语法可以参考这个链接:YAML语法
(1)@ConfigurationProperties
通过 Spring Boot 提供的 @ConfigurationProperties 注解,可以将全局配置文件中的配置数据绑定到 JavaBean 中。
(2)@Value
只需要读取配置文件中的某一个配置时,可以通过 @Value 注解获取。
(1)创建Spring Boot程序时,选择SQL->MyBatis Framework和MySQL Driver依赖。
(2)设置数据源参数
- spring:
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/mybatis
- username: root
- password: root
- #type: com.alibaba.druid.pool.DriudDataSource
(3)定义数据层接口与映射配置
注意Boot程序的DAO接口定义上必须加上注解@Mapper
- @Mapper
- public interface BookDao {
- @Select("select * from tb_book where id = #{id}")
- Book GetById(int id);
- }
(4)测试类
- @SpringBootTest
- class BootMybatisApplicationTests {
- @Resource
- private BookDao bookDao;
-
- @Test
- void TestGetById() {
- Book book=bookDao.GetById(1);
- System.out.println(book);
- }
- }
注:需要引入依赖的artifactId是druid-spring-boot-starter,不是druid
配置参数:
- spring:
- datasource:
- druid:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/mybatis
- username: root
- password: root
服务地址也可以用阿里云的地址。