Spring Boot
文章目录
SpringBoot中文文档:https://springdoc.cn/spring-boot/index.html
Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效。
一个最简单的Spring Boot项目
Spring Maven坐标依赖 【SpringBoot】核心依赖和自动配置
Spring Boot 项目通常需要以下核心依赖:
- spring-boot-starter-web:用于构建Web应用程序,包括内嵌的Tomcat服务器和Spring MVC。
- spring-boot-starter-data-jpa:用于与JPA(Java Persistence API)进行集成,简化数据访问层的开发。
- spring-boot-starter-test:用于编写单元测试和集成测试。
- spring-boot-starter-security:用于实现应用程序的安全性功能,如身份验证和授权。
- spring-boot-starter-thymeleaf:用于集成Thymeleaf模板引擎,用于构建Web页面。
- spring-boot-starter-actuator:用于监控和管理Spring Boot应用程序。
- spring-boot-devtools:提供开发工具,如自动重新加载应用程序、远程调试等。
- spring-boot-starter-data-rest:用于将Spring Data仓库暴露为RESTful API。
- spring-boot-starter-validation:用于实现数据验证和校验。
这些是Spring Boot 项目常用的核心依赖,根据项目需求还可以添加其他依赖,如数据库驱动、消息队列等。
最简单的Spring Boot依赖文件(pom.xml)
<?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>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>11</java.version>
</properties>
</project>
首先就是核心依赖了:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
Spring Boot 启动类
package org.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Spring Boot 配置文件
在Spring Boot中,配置文件的名称和位置对应于应用程序的不同环境。主要有以下几种配置文件:
- src/main/resources/application.properties:这是Spring Boot应用程序的默认配置文件。可以在其中设置各种配置属性,如数据库连接信息、端口号等。
- src/main/resources/application.yml:与application.properties类似,但使用YAML格式编写配置,更加清晰和易读。
- src/main/resources/application-{profile}.properties或src/main/resources/application-{profile}.yml:用于指定特定环境的配置文件,其中{profile}是环境的名称,如development、production等。
- 命令行参数:可以通过命令行参数覆盖配置文件中的配置,例如:
java -jar myapp.jar --server.port=8081。 - 环境变量:可以通过设置环境变量来覆盖配置文件中的配置。
Spring Boot 如何定义Controller
package org.example;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
启动项目,查看运行状态
打开浏览器,输入网址http://localhost:9091/hello

如果浏览器如上显示,则成功
创建几个简单的静态页面
集成数据访问 Spring Data
Spring Data提供了额外的项目,帮助你访问各种如下的NoSQL技术。
使用MySQL数据库
在Spring Boot中集成Spring Data非常简单,只需要添加相应的依赖即可。以下是一些基本步骤:
-
添加Spring Data JPA依赖:在
pom.xml(如果是Maven项目)或build.gradle(如果是Gradle项目)中添加Spring Data JPA依赖。Maven 依赖:
添加Lombok依赖:在pom.xml(如果是Maven项目)或build.gradle(如果是Gradle项目)中添加Lombok依赖。
- 安装Lombok插件:在IDE中安装Lombok插件,以便IDE能够识别Lombok的注解并在编译时生成对应的代码。
- 使用Lombok注解:在实体类或其他需要使用Lombok的地方,使用Lombok提供的注解来简化代码,如
@Getter、@Setter、@ToString等。
添加依赖
<!--spring data jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
为什么在这里添加Lombok依赖?
Lombok是一个Java库,可以通过注解的方式来减少代码的编写量,提高代码的简洁性和可读性。使用Lombok可以在编译时自动生成一些常见的Java代码,例如getter和setter方法、equals和hashCode方法、toString方法等,从而减少了开发人员需要手动编写的重复代码量。
Lombok的主要作用包括:
- 简化POJO类的编写:使用
@Data注解可以自动生成getter、setter、toString、equals、hashCode等方法,大大减少了POJO类的代码量。 - 简化构造函数的编写:使用
@NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor等注解可以自动生成无参构造函数、有参构造函数等。 - 简化日志的使用:使用
@Slf4j、@Log等注解可以自动生成日志对象,简化了日志的使用。 - 其他功能:除了上述功能外,Lombok还提供了一些其他功能,如
@Builder用于构建器模式、@SneakyThrows用于抛出受检异常等。
总的来说,Lombok能够通过简洁的注解减少Java代码的编写量,提高开发效率,但同时也可能会导致代码可读性降低,因为一些生成的代码并不会在源代码中直接显示,需要开发人员了解这些注解的作用。
配置数据源
在application.properties或application.yml文件中配置数据源信息,如数据库URL、用户名、密码等。
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
数据库设计
创建数据库mydb
添加user表
设计字段
创建实体类
创建与数据库表对应的实体类,并使用JPA注解进行实体类的映射。
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// getters and setters
}
集成测试 Spring Test
添加依赖
<!--spring test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
在使用Spring Boot Test注解时,你不需要手动安装任何额外的依赖。Spring Boot Test依赖会随着Spring Boot的启动而自动添加到项目的classpath中。你只需要在项目中使用@SpringBootTest等注解来编写测试,并确保项目中已经包含了对应的Spring Boot依赖,例如spring-boot-starter-test。Spring Boot会自动加载测试所需的依赖,并启动相应的测试环境。
在Spring Boot项目中集成Spring Test非常简单,Spring Boot已经集成了对JUnit和Spring框架的测试支持。你可以使用@SpringBootTest注解来启动整个Spring应用程序上下文,并在测试中使用自动配置的功能。
以下是一个简单的示例,展示了如何在Spring Boot项目中编写一个简单的单元测试:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.assertEquals;
@SpringBootTest
public class MyServiceTest {
@Autowired
private MyService myService;
@Test
public void testMyService() {
String result = myService.doSomething();
assertEquals("Hello, Spring Boot!", result);
}
}
在这个示例中,@SpringBootTest注解用于启动整个Spring应用程序上下文,使得MyService类及其依赖的其他组件可以被自动注入。@Autowired注解用于注入MyService实例,然后可以在测试方法中调用其方法进行测试。assertEquals方法用于断言测试结果是否符合预期。
除了单元测试外,Spring Boot还支持集成测试、Web测试、数据访问测试等多种测试场景,你可以根据项目的需求选择合适的测试方式。
集成模板引擎 Spring Thymeleaf
集成权限管理 spring-boot-starter-security
IO
Servlet Web Applications
Spring Security
Spring Session
Spring for GraphQL
如果你想构建GraphQL应用程序,你可以利用Spring Boot对 Spring for GraphQL 的自动配置。Spring for GraphQL项目是基于 GraphQL Java 的。你至少需要 spring-boot-starter-graphql starter。因为GraphQL与传输无关,你还需要在你的应用程序中拥有一个或多个额外的 starter,以便在网络上公开你的GraphQL API。
Spring HATEOAS
SpringBoot应用部署
消息队列 Messaging
容器镜像
最后
参考资料:https://blog.csdn.net/tr1912/article/details/79217132

2万+

被折叠的 条评论
为什么被折叠?



