SpringBoot高级用法,整合Mybatis、Web

    科技2025-05-25  26

    一、SpringBoot的高级用法

    1、为属性赋值操作

    1.1、业务需求说明

    说明:当程序中出现了频繁变化的数据时,如果采用人为的方式进行修改并且变异打包则导致代码的耦合性较高,不便于维护,所以能否为属性动态赋值。

    1.2、关于YML文件说明

    # YML文件语法 # 1. key:(空格) value # 2. key与key之间有层级的缩进关系. server: port: 8090 # 属性赋值操作,编辑属性时注意前缀. 只要springboot启动该数据就会被写入内存中 key-value格式 redis: host: 192.168.126.130 port: 6379

    1.3、为属性赋值操作

    //动态获取ip和端口数据 //@ResponseBody //作用1: 将对象转化为JSON //作用2: 如果返回值是String类型,则返回字符串本身 //作用3: 一般客户端发起ajax请求时,采用该注解返回数据, 将不会执行视图解析器操作 @RestController public class RedisController { @Value("${redis.host}") //spel表达式 private String host; // = "192.168.126.130"; //private String host; // = "192.168.126.140"; @Value("${redis.port}") private Integer port; // = 6379; @RequestMapping("/getMsg") public String getMsg(){ return host + ":" + port; } }

    2、指定配置文件为属性赋值

    说明:由于YML配置文件中的数据一般都是系统级别的数据,所以一般的业务数据都会写到properties的配置文件中

    2.1、编辑properties配置文件

    2.2、编辑RedisController

    package com.jt.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; //动态获取ip和端口数据 //@ResponseBody //作用1: 将对象转化为JSON //作用2: 如果返回值是String类型,则返回字符串本身 //作用3: 一般客户端发起ajax请求时,采用该注解返回数据, 将不会执行视图解析器操作 @RestController //动态的导入pro配置文件,交给spring容器进行加载. @PropertySource("classpath:/properties/redis.properties") public class RedisController { @Value("${redis.host}") //spel表达式 private String host; // = "192.168.126.130"; //private String host; // = "192.168.126.140"; @Value("${redis.port}") private Integer port; // = 6379; @Value("${pro.redis.host}") private String proHost; @Value("${pro.redis.port}") private Integer proPort; //指定properties文件进行赋值操作. @RequestMapping("/getMsg") public String getMsg(){ //从yml配置文件中动态获取 return host + ":" + port; } @RequestMapping("/getPro") public String getPro(){ return proHost + ":" + proPort; } }

    2.3、环境切换

    业务说明:由于开发时都是链接公司自己的数据库/服务器等,把这个环境称之为“开发环境”; 当开发完成之后,需要进行上线部署,则需要链接“生产环境”; 如果频繁的切换环境,则导致项目由于修改错误,导致问题的发生。 项目优化:能否提供一种策略,简化上述操作的开发过程。

    #第一份配置文件,用来指定默认的环境标识 spring: profiles: active: prod --- # YML文件语法 # 1. key:(空格) value # 2. key与key之间有层级的缩进关系. #指定环境的名称 spring: profiles: dev server: port: 8090 # 属性赋值操作,编辑属性时注意前缀. # 只要springboot启动该数据就会被写入内存中 key-value格式 redis: host: 192.168.126.129 port: 6379 # 1.需要将环境一分为二 --- spring: profiles: prod server: port: 9000 # 属性赋值操作,编辑属性时注意前缀. # 只要springboot启动该数据就会被写入内存中 key-value格式 redis: host: 111.111.111.111 port: 7000

    3、关于Lombok说明

    3.1、添加jar包

    <!--引入插件lombok 自动的set/get/构造方法插件 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>

    3.2、Lombok案例

    3.3、出现的问题

    说明:如果需要使用Lombok插件工具就必须提前安装插件,如果在上线的时候,Linux系统中,不需要提前安装Lombok插件 原因:Lombok插件在编译器有效,将.java文件编译成.class文件时,Lombok会动态的添加get/set/toString…等方法,添加到.class文件中。 Linux上线部署时运行时.jar文件,.jar包含的文件 – .class文件

    4、知识小结

    SpringBoot开箱即用原则属性赋值的操作:@Value(“${ }”)动态导入资源文件:@PropertySource(“classpath:/properties/redis.properties”)环境切换: —, spring.profiles: dev ,默认的选项Lombok常用操作

    二、SpringBoot整合Mybatis

    1、新建项目

    暂时只需要勾选jar包即可

    2、导入数据库

    2.1、准备数据库工具

    2.2、链接数据库

    2.3、添加jar包文件

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.jt</groupId> <artifactId>springboot_demo2_mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot_demo2_mybatis</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--引入插件lombok 自动的set/get/构造方法插件 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--引入数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--springBoot数据库连接 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--spring整合mybatis 暂时 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

    三、SpringBoot整合Web资源

    1、创建Web项目

    2、编辑项目目录结构

    3、引入jar包结构

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.jt</groupId> <artifactId>springboot_demo3_web</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>springboot_demo3_web</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--引入插件lombok 自动的set/get/构造方法插件 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--引入数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--springBoot数据库连接 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--spring整合mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <!--springBoot整合JSP添加依赖 --> <!--servlet依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <!--jstl依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--使jsp页面生效 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

    4、编辑YML文件

    server: port: 8090 #定义端口 servlet: context-path: / #定义项目的发布路径 spring: datasource: #driver-class-name: com.mysql.cj.jdbc.Driver springboot程序采用默认的配置 url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true username: root password: root mvc: #引入mvn配置 view: prefix: /WEB-INF/ # /默认代表根目录 src/main/webapp suffix: .jsp mybatis-plus: # 定义别名包 type-aliases-package: com.jt.pojo #加载user标签的mapper文件 mapper-locations: classpath:/mybatis/mappers/*.xml #开启驼峰映射 configuration: map-underscore-to-camel-case: true # 引入日志信息 logging: level: com.jt.mapper: debug

    4、关于IDEA启动web项目配置

    说明:配置IDEA启动项,将工作目录配置到本项目即可

    Processed: 0.010, SQL: 8