CGB第三阶段DAY02

CGB第三阶段DAY02

2021.6.24

1、SpringBoot高级用法

1.1、SpringBoot热部署

1.1.1、热部署说明

每次修改代码修改之后,需要手动的重启服务器.。在***开发阶段***有一种高效的机制. 每次修改代码之后程序自动重启。

1.1.2、添加jar包文件

<!--SpringBoot核心机制: "开箱即用"
        只需导入特定的jar包文件 则可以直接使用其中的功能
        根本原因: SpringBoot是对框架的简化,内部进行了扩展,无需程序员操作.
        -->
        <!--支持热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

2、lombok插件

2.1、lombok作用

作用:简化用户常见实体对象pojo的过程,由插件自动完成实体对象中常用方法的构建
代码:@Data
@NoArgsConstructor
@AllArgsConstructor

2.2、lombok链式加载

//注解的作用: 动态的生成get/set/toString....方法
@Data   //一般为属性赋值 get/set方法
@NoArgsConstructor  //无参构造
@AllArgsConstructor //全参构造
@Accessors(chain = true) //开启链式加载(重写set方法)

2.3、lombok面试题

思考: lombok使用需要安装插件.
问:在Linux系统中运行项目 是否需要提前安装插件?
答案: 不要
原因: lombok在
编译期有效
**, 由xxx.java文件 编译为xxx.class文件时,已经动态添加了set/get等方法.所以在项目发布的时候( xxx.class文件组成的xxx.jar) ,所以不需要安装lombok环境

3、SpringBoot测试环境说明

3.1、测试环境

SpringBoot由于开发中需要经常编译测试方法,为了降低代码联调的代价.则SpringBoot提供了专门用于测试的注解 @SpringBootTest

3.2、@SpringBootTest用法

如果测试方法中添加了该注解,则当执行@Test注解方法时,则Spring容器将会启动,启动之后将所有需要依赖注入的信息完整构建.之后用户有针对性的挑选需要测试的代码 测试即可。

4、Spring容器内存结构

4.1、SpringBoot加载器顺序

1、当用户点击main方法时启动程序.(开始)
2、SpringBoot程序开始加载主启动类上边的注解@SpringBootApplication(SpringBoot内部运行机制开始执行)
3、当SpringBoot程序开始执行,则会动态的获取当前主启动类的包路径.(com.jt)
4、通过包扫描的机制 将特定的注解标识的类(Controller/Service/Dao).交给Spring容器管理.
5、Spring容器维护的是一个Map集合 <K,V>
		key: 类名首字母小写 userController
		value: 实例化的对象
		例子: Map<userController,UserController的对象>
6、当对象创建时(实例化),遇到@Autowired 则需要依赖注入对象,当整个Spring容器内部都没有该对象时,则会报错 注入失败. 如果Map中维护了需要注入的对象,。@Autowired 注入成功, 则最终对象实例化正常.
7当上述的操作都运行成功之后则spring容器启动成功,等待用户的调用.

CGB第三阶段DAY02

5、SpringBoot整合Mybatis

5.1、步骤

1、创建项目
2、添加jar包
3、编辑主启动类
4、编辑pojo对象
5、编辑Mapper接口
6、编辑测试类
7、编辑Mapper配置文件
8、编辑YML配置文件

5.2、SpringBoot整合Mybatis核心

5.2.1、编辑jar包

当SpringBoot 程序启动时,会加载pom.xml文件中指定的jar包文件.。根据开箱即用的原则 则开始执行Mybatis代码。

		 <!--spring整合mybatis  暂时  -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

5.2.2、编辑YML文件

SpringBoot程序加载jar包文件之后,通过YML配置文件实现数据的填充,配置Mybaits相关信息。

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

5.2.3、为接口创建代理对象

使用@Mapper注解 为该接口创建代理对象

5.2.4、编辑测试类

@SpringBootTest
public class TestMybatis {

    //明确:注入一定是对象
    //SpringBoot为了整合mybatis,简化代码结构 Spring动态的为Mybatis的接口
    //创建代理对象
    //代理: 根据原有对象的模型,在运行期动态创建了一个一模一样功能的实例化对象
    //案例: 孙悟空(接口)/克隆一个一模一样的对象
    @Autowired
    private UserMapper userMapper;

    @Test
    public void testFind(){
        System.out.println(userMapper.getClass());
        List<User> userList = userMapper.findAll();
        System.out.println(userList);
    }
}

5.2.5、@MapperScan说明

CGB第三阶段DAY02

5.2.6、环境自动注入报错说明

在MApper接口中添加@component注解
CGB第三阶段DAY02

上一篇:Day02


下一篇:Python第三阶段学习redis day02