软件设计之SSM(11)

软件设计之SSM(11)

路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发

资料可以去尚硅谷官网免费领取

学习内容:

Springboot

  1. 配置文件
  2. 整合SpringMVC
  3. 整合Druid数据源
  4. 整合Mybatis
  5. 项目打包和运行

1、配置文件

统一配置管理

SpringBoot工程下,进行统一的配置管理,你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(application.propertiesapplication.yml

配置文件中有固定的key,也可以自定义key,官方固定配置key点击此处

xml 复制代码
# 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配置文件

  1. 语法说明
    a. 数据结构用树形结构呈现,通过缩进来表示层级,
    b. 连续的项目(集合)通过减号 -来表示
    c. 键值结构里面的key/value对用冒号: 来分隔。
    d. YAML配置文件的扩展名是yaml 或 yml
  2. 配置案例
yaml 复制代码
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必须要保持一致才可以注入成功

java 复制代码
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中,可以使用多环境配置来根据不同的运行环境(如开发、测试、生产)加载不同的配置。

  1. 属性文件分离:
    将应用程序的配置参数分离到不同的属性文件中,每个环境对应一个属性文件。比如:可以创建application-dev.propertiesapplication-prod.propertiesapplication-test.properties等文件对应不同环境。(YAML配置文件同理)
  2. 环境激活:
    application.properties中设置spring.profiles.active=xxx 来指定使用开发环境的配置
  3. 注意事项
    如果设置了spring.profiles.active,并且和application有重叠属性,以active设置优先。
    如果设置了spring.profiles.active,和application无重叠属性,application设置依然生效!

2、整合SpringMVC

实现过程

  1. 引入依赖:Spring Boot 项目通常使用 spring-boot-starter-web 依赖,它包括了 Spring MVC、Tomcat(默认嵌入式服务器)以及其他与 Web 开发相关的必要库。
  2. 创建 Spring Boot 启动类: 在 Spring Boot 项目中,创建一个主类,并添加 @SpringBootApplication 注解,它会自动扫描、配置项目中的组件
  3. 编写控制器使用 Spring MVC 的 @RestController 或 @Controller 来编写控制器。@RestController 自动返回 JSON 或 XML,而 @Controller 则用于返回视图。

Web相关配置(配置文件)

  • server.port: 指定应用程序的HTTP服务器端口号。默认情况下,Spring Boot使用8080作为默认端口。
  • server.servlet.context-path: 设置应用程序的上下文路径。这是应用程序在URL中的基本路径。默认情况下,上下文路径为空。
  • spring.mvc.view.prefixspring.mvc.view.suffix: 这两个属性用于配置视图解析器的前缀和后缀。视图解析器用于解析控制器返回的视图名称,并将其映射到实际的视图页面。spring.mvc.view.prefix定义视图的前缀,spring.mvc.view.suffix定义视图的后缀。
  • spring.resources.static-locations:配置静态资源的位置。静态资源可以是CSS、JavaScript、图像等。默认情况下,Spring Boot会将静态资源放在classpath:/static目录下。
  • spring.http.encoding.charsetspring.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/

覆盖路径

自定义配置静态资源地址,但默认路径不生效

yaml 复制代码
# 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数据源

  1. 引入 Druid 依赖
  2. 配置 Druid 数据源:在 application.yml 或 application.properties 文件中进行 Druid 数据源的配置
yaml 复制代码
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

  1. 添加依赖:在 pom.xml 中添加 MyBatis 相关的依赖。Spring Boot 官方提供了 mybatis-spring-boot-starter
  2. 配置数据源:在 application.yml 或 application.properties 文件中配置数据库连接信息
  3. 创建实体类:创建一个实体类,映射到数据库中的表;
  4. Mapper 接口实体类(POJO): Mapper 接口: 在 MyBatis 中,Mapper 接口负责定义与数据库交互的方法,并通过注解或 XML 映射 SQL 语句。
  5. 启动类中添加 @MapperScan 注解:为了让 Spring Boot 扫描到 MyBatis 的 Mapper 接口,可以在 Spring Boot 主类中使用 @MapperScan 注解指定接口所在包:
  6. 数据库操作:通过自动注入的 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命令的说明:

xml 复制代码
命令格式:java -jar  [选项] [参数] <jar文件名>
相关推荐
卓越软件开发5 分钟前
基于Springboot海宝海鲜餐厅系统JAVA|VUE|SSM计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解
java·vue.js·spring boot
hai4058723 分钟前
Spring Cloud微服务详解
spring·spring cloud·微服务
墨天轮29 分钟前
2024年9月国产数据库大事记-墨天轮
数据库·oceanbase·opengauss·国产数据库·kingbase
spiker_44 分钟前
使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务
数据库·后端·golang·开源·go·github·gin
V+zmm101341 小时前
云上考场小程序+ssm论文源码调试讲解
java·小程序·毕业设计·mvc·课程设计
好青崧1 小时前
JavaScript 中的变量作用域
java·开发语言·javascript
晚上一个饼1 小时前
软考数据库部分 ---- (概念数据库模型,三级模式,两级映像,事物管理)
数据库·软件设计师
霍金的微笑1 小时前
牛客练习题
java·开发语言
bug菌¹1 小时前
滚雪球学Oracle[8.3讲]:区块链与Oracle
数据库·oracle·区块链