CGB2106-Day02

1. SpringBoot使用注意事项

1.1 关于Build标签说明

如果没有build 标签不影响编译运行,在项目发布部署时会报错;

如果没有build标签则项目打包之后不能正常执行.报错如下:
在这里插入图片描述

1.2 关于主启动类说明

1.2.1 关于元注解的说明

@Target(ElementType.TYPE) 该注解对类有效
@Retention(RetentionPolicy.RUNTIME) 该注解在运行期有效
@Documented 生成源码时 是否动态生成注释文档
@Inherited 标识注解是否可以被继承

1.2.2 @ComponentScan说明

说明: 当springBoot启动时,会实例化很多的对象,但是需要排除特定的类型
原因: SpringBoot内部兼容了很多的第三方框架,但是其中个别加入之后会影响整个代码流程,所以通过这样的方式将个别的类排除在外.

@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

1.2.3 @SpringBootConfiguration注解说明

关键词: 配置文件/配置类 作用:整合第三方框架(配置)
@Configuration: 该注解一般标识类文件,告知springBoot程序 这个类是用来整合第三方框架/配置的.
在这里插入图片描述

 说明2: @SpringBootConfiguration修饰主启动类,说明主启动类也是一个配置类.

 说明3: SpringBoot主启动类会扫描用户自己的配置类,并且实例化对象.
在这里插入图片描述

 

1.2.3 @EnableAutoConfiguration注解说明

说明: 自动化的配置如图所示:
在这里插入图片描述

1.2.3.1@AutoConfigurationPackage说明

该注解表示自动配置的包扫描的路径.
工作原理: 该注解会动态的获取主启动类当前的包路径.之后开启包扫描的机制.
知识点: 以后写代码都应该在主启动类的同包及子包中.

1.2.3.2@Import(AutoConfigurationImportSelector.class)
知识回顾: SpringBoot使用体现了"开箱即用"的思想,用户引入jar包之后 可以直接使用(少量配置).
思考: dependencies代表程序的依赖项,(将其他的包加载到自己的项目中), 只是加载不负责执行.
 

1.2.3.3流程说明(重点!!!)

当SpringBoot主启动项执行时,内部会加载@Import(AutoConfigurationImportSelector.class),
该注解的作用就是根据依赖信息,根据SpringBoot内部的配置信息,依次加载执行.
当匹配了用户添加的启动器之后,程序负责实例化框架(执行jar包中的内容).
如果匹配不到,则继续向下执行.最终SpringBoot程序加载成功.

 

1.2.4 主启动类注解结构图

在这里插入图片描述

1.2.5 关于依赖考题


问题: 用户暂时不需要数据库的配置. 问:能否先行添加数据源的启动项?? (不添加任何注解!!!)
答案: 不可以,因为启动项执行需要完整配置,数据源信息并未添加.导致报错.

总结: SpringBoot项目中的依赖包尤其启动项,添加时慎重. 如果需要添加启动器,则必须保证配置完整.否则程序启动必然失败!!!.

2. SpringBoot高级用法

2.1 属性赋值

2.1.1 @Value为属性赋

YML配置信息

# SpringBoot启动时 默认加载yml文件
msg:
  hello: "今天下雨,记得带伞~~"

 动态赋值:

 

2.2 properties文件为属性赋值

2.2.1 业务说明

业务有时会需要动态赋值,如果将大量的业务数据写到yml文件中 导致代码混乱.最好的方式应该指定properties文件 为业务赋值.

2.2.2 编辑properties文件

#语法:
#数据结构:   key=value
#注意事项:   不要添加""号 本身就是字符串.
#字符集编码:  写法采用utf-8,程序读取时采用ISO-8859-1
pro.msg=配置信息

2.2.3 动态为属性赋值

2.2 环境切换

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

 

2.3 热部署

2.3.1 添加依赖

<!--支持热部署 -->

<dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-devtools</artifactId>

</dependency>

2.3.2 配置IDEA环境

快捷键: ctrl + shift +alt + / 或者 ctrl + alt + a

 

2.4 Lombok插件安装

2.4.1 插件安装

2.4.2 添加jar包

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

2.4.3 lombok作用

动态生成常见 get/set/toString等方法

 

2.4.4 lombok知识点

问题: lombok使用需要提前安装lombok插件!!, 如果项目发布在Linux系统中.问: 系统是否需要提前安装插件?

答案: 不要 因为lombok插件在编译期有效!!!

xxx.java文件编译为xxx.class文件.
知识衍生: 写的是java源码, 运行的是编译后的.class
 

2.5 SpringBoot测试类用法

2.5.1 业务说明

说明:有时由于业务需要,需要进行单元测试, 单元测试中的对象可能会依赖Spring容器.
需求: 需要Spring容器管理一个User对象. id=101 name=“好好学习”
分析: 难点: 定制化属性内容!!! 具体业务功能. 利用配置类实现!!!

2.5.2 编辑配置类

 

2.5.3 Spring对象注入原理

1.根据对象类型进行注入

2.5.4 编辑测试类

 

3 作业

  1. 新创建一个项目 demo2_mybatis 要求实现SpringBoot整合Mybatis
  2. 难点1. 引入jar包
  3. 难点2. 编辑YML配置文件 整合数据源 整合mybais
  4. 要求: 通过测试类 完成CURD操作 库和表使用之前项目的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值