2、SpringBoot高级用法—SpringBoot整合Mybatis—动态代理机制

1. SpringBoot高级用法

1.1 SpringBoot配置文件说明

1.1.1 关于配置文件说明

解释: Spring程序启动时,需要加载默认的配置文件, 默认名称:application.properties

1.1.2 修改字符集

说明: 下列操作修改的是IDEA中解析代码时的字符集格式. 在这里插入图片描述

1.1.3 properties配置文件说明

#语法
#1.数据结构 key-value结构
#2.写法 key=value “key2”=“value2”
#3.数据类型 properties的数据类型都是字符串 所以无需添加"号 #4.弊端 配置信息没有层级结构,必须写配置的全名
#5.程序通过IO流 进行pro文件的加载时 默认的字符集编码IS0-8859-1

1.1.4 YML配置文件说明

#关于YML配置文件说明
# 1.数据结构    key=value
# 2.数据类型    默认都是字符串 如果需要类型转化,则框架已经在内部完成
# 3.yml写法:   1.key: (空格)value  2.有层级结构 编辑时注意
# 4.字符集编码: 默认程序加载时都是UTF-8
server:
  port: 8080
  #项目发布的路径
  servlet:
    #  /缺省值  localhost:8080/jt/xxxx请求路径
    context-path: /

1.2 SpringBoot为属性赋值

1.2.1 业务说明

说明: 由于业务需要 某些属性信息,如果直接写死在代码中则后期的扩展性不好.所以需要动态赋值. 由于对象一般都是由Spring容器管理.所以该赋值的操作也应该由Spring容器赋值.

1.2.2 编辑YML配置文件

在这里插入图片描述

1.2.3 为属性赋值

在这里插入图片描述

1.3 利用properties为属性赋值

1.3.1 需求

说明: YML配置文件是Spring中的核心配置文件,其中包含了整合第三方框架的信息. 如果需要设定业务数据,一般采用properties的方式 进行管理.

1.3.2 编辑properties文件

在这里插入图片描述

1.3.3 实现属性赋值

在这里插入图片描述

1.3 SpringBoot环境切换

1.3.1 需求说明

开发时使用的环境称为开发环境,测试时应该使用测试环境. 开发环境: port: 8080 msg=“我喜欢开发” 测试环境: port 8090 msg=“我喜欢测试” 解决方案: 开始多环境测试

1.3.2 语法说明

要求: 不管是几个环境,要求配置项都必须相同,值可以不同 语法: 1.使用—实现YML配置文件的分割 2.定义环境名称 3.定义默认环境名称

#指定默认的环境
spring:
  profiles:
    active: test
---

#关于YML配置文件说明
# 1.数据结构    key=value
# 2.数据类型    默认都是字符串 如果需要类型转化,则框架已经在内部完成
# 3.yml写法:   1.key: (空格)value  2.有层级结构 编辑时注意
# 4.字符集编码: 默认程序加载时都是UTF-8
#定义环境名称
spring:
  config:
    activate:
      on-profile: dev

server:
  port: 8080
  #项目发布的路径
  servlet:
    #  /缺省值  localhost:8080/jt/xxxx请求路径
    context-path: /

#2.为属性赋值  hello代表前缀    key=hello.msg
hello:
    msg: "我喜欢开发"

#环境分割线
---
spring:
  config:
    activate:
      on-profile: test

server:
  port: 8090
  #项目发布的路径
  servlet:
    #  /缺省值  localhost:8080/jt/xxxx请求路径
    context-path: /

#2.为属性赋值  hello代表前缀    key=hello.msg
hello:
  msg: "我喜欢测试"

1.4 热部署

1.4.1 解释说明

说明: 热部署一般在开发阶段比较适用.但是在发布阶段一般会取消该功能. 作用: 当程序进行修改 一段时间之后,tomcat服务器会自动的重启. 缺点: eclipse中 兼容完美立即重启, IDEA 3-5秒之后完成重启.

1.4.2 添加jar包

说明: SpringBoot根据自身的规范,只需要导入jar包文件即可,无需过多的配置.

		<!--支持热部署 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

1.4.3 修改IDEA配置

组合键: ctrl + alt + shifr + / 效果: 在这里插入图片描述 勾选热部署 :在这里插入图片描述

1.5 lombok插件

1.5.0 添加插件

在这里插入图片描述

1.5.1 添加jar包

		<!--引入lombok包-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

1.5.2 lombok用法

检查是否可以动态生成get/set等方法 在这里插入图片描述

1.6 导入数据库

1.6.1 检查数据库是否可用

在这里插入图片描述

1.6.2 检查数据库服务项

说明: 有时启动计算机时可能出现异常情况,导致mysql 数据库服务不能正常启动. 展现的效果表示数据库链接异常. 检查: 检查mysql服务项 是否可用. 在这里插入图片描述 如果显示链接异常,则可能是服务没有启动导致的. 在这里插入图片描述

1.6.3 远程链接数据库

1).新建链接 在这里插入图片描述 2).远程链接数据库 在这里插入图片描述 3).数据库文件位置 在这里插入图片描述 4).数据库链接

2. SpringBoot整合Mybatis

2.1 创建项目

2.1.1 创建项目

在这里插入图片描述

2.1.2 编辑pom.xml文件

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jt</groupId>
    <artifactId>springboot_demo_2</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--1.parent标签作用
	  	parent标签中规定了Springboot与其他框架整合时候所用到的jar包的版本
	  	的定义!!!. 这些jar包的版本都是经过官方测试的.几乎不会出现版本冲突.
		总结: 版本的定义!!!
	  -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--jar包文件的依赖   如果需要某些功能,则使用依赖进行导入
            按需导入.
            大部分都进了定义,但是个别的需要手动导入(需要自定版本)		-->
        <dependency>
            <groupId>org.springframework.boot</groupId>

            <!--
                spring-boot-starter: springboot启动项
                SpringBoot官网针对于该框架已经完成了"配置" 用户只需要简单的配置
                既可以使用该功能.
            -->
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--支持热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <!--引入lombok包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
    
    <!--maven通过插件对maven版本的springboot进行管理
        体现: 项目打包/发布/测试等相关操作.
    -->
    <build>
        <plugins>
            <!--springboot专门为springboot的工程开发了一款项目管理插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.1.3 编辑主启动类

创建com.jt的包之后,编辑主启动类, 运行测试成功即可. 在这里插入图片描述

2.2编辑POJO对象

在这里插入图片描述

2.3 关于lombok面试题

  1. 需要在IDEA中安装对应的插件 “红番椒”1. 添加jar包 之后通过注解进行调用!!! 问题: 项目将来都要部署到Linux系统中. 是否需要安装插件??? 对java编译的规则是否清楚!!! 答案: 不需要安装 原因: lombok在编译期有效 xxx.java(源码) ----jvm-----xxxx.class(字节码文件) ----xxx.jar

2.4 关于Mybatis总结

2.4.1 什么是Mybatis

Mybatis是持久化层的框架,与数据库进行交互. Mybatis在内部封装了JDBC. Mybatis称之为半自动化的ORM映射框架

2.4.2 ORM思想

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。 总结: 以面向对象的方式操作数据库. 难点 : 1.对象应该与表一对一映射 2.对象中的属性应该与表中的字段一一映射. 分类: 1.更新操作 手写sql ,参数一般采用对象的方式封装 之后通过#{属性} 2.查询操作 手写sql, 结果集自动的封装 扩展: user对象(…) userMapper.insert(user); 程序自动入库 配置繁琐

思考: 为什么mybatis 这么多年都没有实现全自动化的orm呢? 性能问题 Mybatis认为: 用户自己手写的Sql的执行效率是最高的. 并且也更加的通用 多表关联.

2.5 SpringBoot整合Mybatis

2.5.1 导入jar包

  <!--引入数据库驱动 -->
        <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>2.1.4</version>
        </dependency>

2.5.2 数据源相关说明

spring:
  datasource:
    # 自动匹配驱动的版本
    url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&amp;useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true&amp;allowMultiQueries=true
    username: root
    password: root

1.serverTimezone=GMT%2B8& GMT+8 2.useUnicode=true&characterEncoding=utf8 是否使用useUnicode编码,字符的编码格式采用u8格式 3.autoReconnect=true 如果程序链接过程中jdbc链接中断 ,是否重连 4.allowMultiQueries=true 是否允许批量执行

2.5.3 SpringBoot整合Mybatis

#Mybatis整合
mybatis:
  #定义别名包
  type-aliases-package: com.jt.pojo
  #加载mapper的映射文件
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

2.5.4 编辑Mapper接口/映射文件

1).编辑mapper接口 在这里插入图片描述 2).编辑xml映射文件 在这里插入图片描述

2.5.5 编辑测试类

在这里插入图片描述

2.6 动态代理机制

2.6.1 什么是动态代理

在不修改源码的条件下对方法进行扩展.

2.6.2 动态代理的方式

1.JDK动态代理 要求: 1.要求被代理者,必须实现接口. 2.代理对象根据接口的类型,通过反射机制创建出来一个实现类对象.(JDK源码底层实现的) 3.Spring容器一般面对接口注入时 ,默认条件下采用JDK动态代理的方式实例化对象.

2.CGLIB动态代理 1.CGLIB是JDK代理的一种补充. 2.不管被代理者是否实现接口,都可以为其创建代理对象 3.代理对象是被代理者的子类.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值