一、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、为属性赋值操作
@RestController
public class RedisController {
@Value("${redis.host}")
private String host
;
@Value("${redis.port}")
private Integer port
;
@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
;
@RestController
@PropertySource("classpath:/properties/redis.properties")
public class RedisController {
@Value("${redis.host}")
private String host
;
@Value("${redis.port}")
private Integer port
;
@Value("${pro.redis.host}")
private String proHost
;
@Value("${pro.redis.port}")
private Integer proPort
;
@RequestMapping("/getMsg")
public String
getMsg(){
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
4、关于IDEA启动web项目配置
说明:配置IDEA启动项,将工作目录配置到本项目即可