当前位置: 首页 > article >正文

软件设计之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点击此处

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

  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/

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

# 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 数据源的配置
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命令的说明:

命令格式:java -jar  [选项] [参数] <jar文件名>

在这里插入图片描述


http://www.kler.cn/news/342033.html

相关文章:

  • QT-多线程、线程池的使用
  • 详解三种常用标准化:Batch Norm Layer Norm RMSNorm
  • 初始项目托管到gitee教程,开箱即用
  • Spring国际化教材
  • k8s的安装和部署
  • Git基本操作与分支
  • 【笔记学习篇】一篇文章搞定Mybatis-快速回顾
  • Python的输入输出函数
  • CAN和CANFD如何转换和通信
  • Github优质项目推荐-第四期
  • tableau除了图表好看,在业务中真有用吗?
  • 拓扑排序与入度为0的结点算法解析及实现
  • 机器学习:关联规则:Apriori算法、FP - Growth算法的原理、应用场景及优缺点介绍
  • 计组复习笔记
  • 博士找高校教职避坑指南:史上最全的避坑秘籍
  • vue中用echarts做一个躺着的柱状图
  • ubutun安装ffmpeg
  • LeetCode 3309. 连接二进制表示可形成的最大数值
  • MSYS2+GCC 安装与应用保姆手册
  • Java 函数式编程(1 万字)