目录
简介
Spring Boot是一个用于创建独立、生产级别的Spring应用程序的开源框架。它简化了基于Spring框架的应用程序的开发和部署过程,提供了一种快速构建应用程序的方式。
Spring Boot提供了自动配置功能,通过约定大于配置的原则,减少了开发人员的配置工作。它集成了许多常用的第三方库和框架,例如Spring MVC、Hibernate、JPA等,使得开发人员可以更加方便地使用这些功能来构建应用程序。
Spring Boot还内置了一个嵌入式的Servlet容器,如Tomcat或Jetty,使得应用程序可以以独立的方式运行,不需要额外安装和配置外部服务器。此外,它还提供了健康检查、监控、日志记录等功能,方便开发人员进行应用程序的管理和维护。
简单代码示例
添加启动依赖
<!-- Maven 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
创建一个启动类来运行应用程序
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
创建一个简单的控制器类来处理 HTTP 请求
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping
public String sayHello() {
return "Hello, World!";
}
}
配置文件种类
Spring Boot可以使用多种类型的配置文件来配置应用程序,常见的配置文件包括:
1.application.properties:基于键值对的属性文件,可以用来配置各种属性。
# application.properties
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password
2.application.yml:基于YAML语法的配置文件,可读性更好,支持更复杂的配置结构。
# application.yml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: password
3.application-{profile}.properties或application-{profile}.yml:针对不同环境的特定配置文件,例如application-dev.yml、application-prod.yml等
# application-dev.yml
spring.datasource.url=jdbc:mysql://localhost:3306/devdatabase
选择特定profile
启动应用程序时指定激活的profile。可以通过命令行参数、环境变量、配置文件等方式指定spring.profiles.active
属性。
1.命令行参数方式:
java -jar myapplication.jar --spring.profiles.active=dev
2.环境变量方式:
export SPRING_PROFILES_ACTIVE=dev
java -jar myapplication.jar
3.配置文件方式:
# application.properties
spring.profiles.active=dev
从配置文件获取数据
①value注解
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Value("${custom.property}")
private String customProperty;
// 省略其它代码
}
②Environment环境变量
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Autowired
private Environment environment;
public void someMethod() {
String customProperty = environment.getProperty("custom.property");
// 使用 customProperty 进行其它操作
}
}
③对象和配置属性的绑定(@ConfigurationProperties)
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "custom")
public class MyCustomProperties {
private String property;
// getter 和 setter 方法省略
// 省略其它代码
}
Spring Boot整合MyBatis代码示例
1.pom.xml文件中添加以下依赖
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
2.在application.properties
或application.yml
文件中配置数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=myusername
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3.创建一个实体类User.java
,并在其中定义与数据库表对应的字段
public class User {
private Long id;
private String name;
// getter and setter methods
}
4.创建一个Mapper接口UserMapper.java
,并使用注解方式定义SQL语句
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users")
List<User> getAllUsers();
}
5.创建一个Service类UserService.java
,并在其中实现业务逻辑
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getAllUsers() {
return userMapper.getAllUsers();
}
}
6.创建一个Controller类UserController.java
,处理HTTP请求
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> getAllUsers() {
return userService.getAllUsers();
}
}