软件设计之SSM(11)
路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发
资料可以去尚硅谷官网免费领取
学习内容:
Springboot
- 配置文件
- 整合SpringMVC
- 整合Druid数据源
- 整合Mybatis
- 项目打包和运行
1、配置文件
统一配置管理
SpringBoot工程下,进行统一的配置管理,你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件
(application.properties
或application.yml
)
配置文件中有固定的key,也可以自定义key,官方固定配置key点击此处
# application.properties 为统一配置文件
# 内部包含: 固定功能的key,自定义的key
# 此处的配置信息,我们都可以在程序中@Value等注解读取
# 固定的key
# 启动端口号
server.port=80
# 自定义
spring.jdbc.datasource.driverClassName=com.mysql.cj.jdbc.driver
spring.jdbc.datasource.url=jdbc:mysql:///springboot_01
spring.jdbc.datasource.username=root
spring.jdbc.datasource.password=root
YAML配置文件
- 语法说明
a. 数据结构用树形结构呈现,通过缩进
来表示层级,
b. 连续的项目(集合)通过减号-
来表示
c. 键值结构里面的key/value对用冒号:
来分隔。
d. YAML配置文件的扩展名是yaml 或 yml - 配置案例
spring:
jdbc:
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql:///springboot_02
username: root
password: root
server:
port: 80
features:
- 登录
- 注册
批量配置文件注入
@ConfigurationProperties
是SpringBoot提供的重要注解, 他可以将一些配置属性批量注入到bean对象。在不使用批量配置之前,需要使用@Value("${spring.jdbc.datasource.password}")
类型
1、在类上通过
@ConfigurationProperties
注解声明该类要读取属性配置
2、prefix="spring.jdbc.datasource"
读取属性文件中前缀为spring.jdbc.datasource的值。前缀
和属性名称
和配置文件中的key
必须要保持一致
才可以注入成功
package com.atguigu.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "spring.jdbc.datasource")
public class DataSourceConfigurationProperties {
private String driverClassName;
private String url;
private String username;
private String password;
}
多环境配置
在Spring Boot中,可以使用多环境配置来根据不同的运行环境(如开发、测试、生产)加载不同的配置。
- 属性文件分离:
将应用程序的配置参数分离到不同的属性文件中,每个环境对应一个属性文件。比如:可以创建application-dev.properties
、application-prod.properties
和application-test.properties
等文件对应不同环境。(YAML配置文件同理) - 环境激活:
在application.properties
中设置spring.profiles.active=xxx
来指定使用开发环境的配置 - 注意事项
如果设置了spring.profiles.active,并且和application有重叠属性,以active设置优先。
如果设置了spring.profiles.active,和application无重叠属性,application设置依然生效!
2、整合SpringMVC
实现过程
引入依赖:
Spring Boot 项目通常使用 spring-boot-starter-web 依赖,它包括了 Spring MVC、Tomcat(默认嵌入式服务器)以及其他与 Web 开发相关的必要库。创建 Spring Boot 启动类:
在 Spring Boot 项目中,创建一个主类,并添加@SpringBootApplication 注解
,它会自动扫描、配置项目中的组件编写控制器
使用 Spring MVC 的 @RestController 或 @Controller 来编写控制器。@RestController 自动返回 JSON 或 XML,而 @Controller 则用于返回视图。
Web相关配置(配置文件)
server.port:
指定应用程序的HTTP服务器端口号。默认情况下,Spring Boot使用8080作为默认端口。server.servlet.context-path:
设置应用程序的上下文路径。这是应用程序在URL中的基本路径。默认情况下,上下文路径为空。spring.mvc.view.prefix
和spring.mvc.view.suffix:
这两个属性用于配置视图解析器的前缀和后缀。视图解析器用于解析控制器返回的视图名称,并将其映射到实际的视图页面。spring.mvc.view.prefix定义视图的前缀,spring.mvc.view.suffix定义视图的后缀。spring.resources.static-locations:
配置静态资源的位置。静态资源可以是CSS、JavaScript、图像等。默认情况下,Spring Boot会将静态资源放在classpath:/static目录下。spring.http.encoding.charset
和spring.http.encoding.enabled:
这两个属性用于配置HTTP请求和响应的字符编码。spring.http.encoding.charset定义字符编码的名称(例如UTF-8),spring.http.encoding.enabled用于启用或禁用字符编码的自动配置。
静态资源处理
在WEB开发中我们需要引入一些静态资源
, 例如 : HTML , CSS , JS , 图片等 , 如果是普通的项目静态资源可以放在项目的webapp目录下。现在使用Spring Boot做开发 , 项目中没有webapp目录
默认的静态资源路径为:
· classpath:/META-INF/resources/
· classpath:/resources/
· classpath:/static/
· classpath:/public/
覆盖路径
自定义配置静态资源地址,但默认路径不生效
# web相关的配置
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.server
server:
# 端口号设置
port: 80
# 项目根路径
servlet:
context-path: /boot
spring:
web:
resources:
# 配置静态资源地址,如果设置,会覆盖默认值
static-locations: classpath:/webapp
3、整合Druid数据源
- 引入 Druid 依赖
- 配置 Druid 数据源:在 application.yml 或 application.properties 文件中进行 Druid 数据源的配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: your_username
password: your_password
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5 # 初始化时建立物理连接的个数
max-active: 20 # 最大连接数
min-idle: 5 # 最小连接数
max-wait: 60000 # 连接池最大等待时间
time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接
min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间
validation-query: SELECT 1 FROM DUAL # 检测连接是否有效的 SQL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true # 是否缓存 preparedStatement
max-pool-prepared-statement-per-connection-size: 20 # 缓存的 preparedStatement 最大数
filters: stat,wall,log4j # 配置 Druid 监控的功能
4、整合Mybatis
添加依赖:
在 pom.xml 中添加 MyBatis 相关的依赖。Spring Boot 官方提供了 mybatis-spring-boot-starter配置数据源:
在 application.yml 或 application.properties 文件中配置数据库连接信息创建实体类:
创建一个实体类,映射到数据库中的表;Mapper 接口实体类(POJO):
Mapper 接口: 在 MyBatis 中,Mapper 接口负责定义与数据库交互的方法,并通过注解或 XML 映射 SQL 语句。启动类中添加 @MapperScan 注解:
为了让 Spring Boot 扫描到 MyBatis 的 Mapper 接口,可以在 Spring Boot 主类中使用 @MapperScan 注解指定接口所在包:数据库操作:
通过自动注入的 Mapper 接口,可以在服务层或控制器中实现数据库操作。
声明式事务和AOP直接导包即可
5、项目打包和运行
添加插件
在Spring Boot项目中添加spring-boot-maven-plugin
插件是为了支持将项目打包成可执行的可运行jar包。
如果不添加spring-boot-maven-plugin插件配置,使用常规的java -jar
命令来运行打包后的Spring Boot项目是无法找到应用程序的入口点
,因此导致无法运行。
执行打包
在IDEA中的Maven窗口点击package
命令启动
java -jar命令
用于在Java环境中执行可执行的JAR文件。下面是关于java -jar命令的说明:
命令格式:java -jar [选项] [参数] <jar文件名>