SpringBoot常见配置

SpringBoot常见配置


1. 常见注解


  • @RestController

  • @RequestMapping

  • @Value

  • @ConfigurationProperties : 将配置文件中的属性值映射到Java对象中

  • @GetMapping

  • @Autowired

  • @Resource

    [!Tip]

    @Autowired@Resource区别。

2. 常见配置


2.1 MySQL数据库配置

1
2
3
4
5
6
7
#数据源连接信息
spring:
datasource:
username: 用户名
password: 密码
url: jdbc:mysql://127.0.0.1:3306/数据库?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver

[!Tip]

MySQL8更换了换数据库驱动类名:com.mysql.cj.jdbc.Driver

2.2 Druid数据库连接池配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
spring:
datasource:
#连接数据库配置
# . . . . .

# Druid datasource
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5 # 初始化时建立的物理连接个数
min-idle: 5 # 最小连接池数量
max-active: 20 # 最大连接池数量
max-wait: 60000 # 获取连接时的最大等待时间(毫秒)
pool-prepared-statements: true # 是否缓存preparedStatement,也就是PSCache
max-pool-prepared-statement-per-connection-size: 20 # 每个连接上PSCache的大小
test-while-idle: true # 建议配置为true,不影响性能,检测连接是否有效
time-between-eviction-runs-millis: 60000 # 检测连接有效性的时间间隔(毫秒)
min-evictable-idle-time-millis: 300000 # 连接在池中最小生存时间(毫秒)
filters: stat,wall,slf4j # 配置监控统计拦截的filters,stat:监控统计、wall:防SQL注入、slf4j:日志
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并SQL,记录慢SQL

[!NOTE]

2.3 Spring Boot配置服务端口

2.3.1 基本配置

  1. YAML 文件 (application.yml):

    1
    2
    server:
    port: 8089
  2. Properties 文件 (application.properties):

    1
    server.port=8089

这些是最基本的配置方式,可以让Spring Boot应用监听在8089端口上。

2.3.2 更多配置选项

除了基本的端口配置之外,还可以配置更多与服务器相关的属性。以下是一些常用的配置项:

  • 压缩:启用或禁用HTTP响应的压缩功能。
  • SSL/TLS:配置安全连接。
  • 错误处理:自定义错误页面。
  • Tomcat/Jetty/Undertow:如果使用的是这些内嵌容器之一,可以进行更详细的配置。
- 压缩

启用HTTP响应压缩可以减少网络传输的数据量,从而提高性能。可以通过以下配置启用压缩:

1
2
3
4
5
6
7
8
9
10
11
# Spring Boot 服务器配置
server:
port: 8089
# HTTP 响应压缩配置
compression:
# 是否开启压缩功能
enabled: true
# 指定要压缩的内容类型
mime-types: text/html,text/xml,application/json
# 设置最小响应大小以触发压缩
min-response-size: 1024
- SSL/TLS 配置

如果应用需要支持HTTPS,可以配置SSL/TLS证书:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Spring Boot 服务器配置
server:
port: 8089
# SSL/TLS 配置
ssl:
# 密钥库文件的路径
key-store: classpath:keystore.p12
# 密钥库的密码
key-store-password: secret
# 密钥别名
key-alias: tomcat
# 密钥的密码
key-password: secret

这里有一个名为keystore.p12的密钥库文件存储在类路径中,并且使用密码secret进行保护。

- 错误处理

可以自定义错误页面,比如404和500错误页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Spring Boot 服务器配置
server:
port: 8089
# SSL/TLS 配置
ssl:
# 密钥库文件的路径
key-store: classpath:keystore.p12
# 密钥库的密码
key-store-password: secret
# 密钥别名
key-alias: tomcat
# 密钥的密码
key-password: secret

这将禁用默认的错误堆栈跟踪信息,并关闭内置的错误页面。

- 内置容器的配置

Spring Boot支持多种内置Web服务器,包括Tomcat, Jetty和Undertow。这些服务器都可以通过额外的配置进行定制。

  • Tomcat:
1
2
3
4
5
6
7
8
9
10
11
# Spring Boot 服务器配置
server:
port: 8089
# Tomcat服务器配置
tomcat:
# 最大线程数
max-threads: 200
# 接受队列的最大长度
accept-count: 100
# 连接超时时间(毫秒)
connection-timeout: 20000
  • Jetty:
1
2
3
4
5
6
7
8
9
10
11
# Spring Boot 服务器配置
server:
port: 8089
# Jetty服务器配置
jetty:
# 最大POST请求大小(字节)
max-http-post-size: 10MB
# 最大HTTP头部大小(字节)
max-http-header-size: 16KB
# 选择器的数量
selectors: 3
  • Undertow:
1
2
3
4
5
6
7
8
9
10
11
12
13
# Spring Boot 服务器配置
server:
port: 8089
# Undertow服务器配置
undertow:
# 线程池配置
threads:
# I/O线程数量
io: 8
# 工作线程数量
worker: 200
# 缓冲区大小(字节)
buffer-size: 32768