SpringBoot高级用法,整合Mybatis、Web

一、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、知识小结

  1. SpringBoot开箱即用原则
  2. 属性赋值的操作:@Value(“${ }”)
  3. 动态导入资源文件:@PropertySource(“classpath:/properties/redis.properties”)
  4. 环境切换: —, spring.profiles: dev ,默认的选项
  5. 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启动项,将工作目录配置到本项目即可
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值