SpringBoot3+Vue3学习

什么是Spring Boot?

Spring Boot 是Spring 提供的一个子项目,用于快速构建Spring应用程序

传统方式弊端:之前的项目都用Spring FrameWork构建,需要手动引入依赖,依赖之间有可能存在冲突,较为麻烦;在配置xml文件中需要配置大量的bean对象,非常繁琐。

Spring Boot优势:

1.起步依赖:本质是一个MAVEN坐标,整个了完成一个功能需要的所有坐标

2.自动配置:在boot程序启动后,一些bean对象会自动注入IOC容器,不需要手动声明,简化开发

3.其他特性:

内嵌的TomCat、Jetty(无需部署WAR文件)

外部化配置

不需要XML配置(properties/yml)

SpringBoot入门程序编写(在浏览器中显示Hello World~)

Bean管理

bean扫描

启动类中@SpringBootApplication注解其实是一个组合注解,集成了包扫描注解@ComponentScan

                

Q:为什么@ComponentScan没有指定扫描包的路径呢,在没有指定路径的情况下,SpringBoot默认扫描启动类所在的包及其子包

bean注册

以下几类注解可以被扫描且被解析,注入IOC容器成为bean对象

Q:假如我们需要注入第三方包,能否用这些注解呢?A : 不能

我们可以按以下步骤 将第三方包注册为bean对象

首先需要用maven命令,将jar包下载到本地Conpository中

举例将common-pojo 包下载到maven conpository中,打开黑马给出的资料

mvn install:install-file -Dfile=C:\Users\Administrator\Desktop\资料\02_Bean注册资料\common-pojo-1.0-SNAPSHOT.jar -DgroupId=cn.itcast -DartifactId=common-pojo -Dversion=1.0 -Dpackaging=jar

需要将-Dfile命令后面的路径改为资料存储路径,打开命令行下载,下载完成后,需要在IDEA中配置依赖

接下来可以有两种方式将第三方包中的类对象注入IOC容器

第一种为@Bean,在启动类中注册,但是不建议,我们可以单独创建一个配置类,在配置类中写入这段代码,需要在配置类上加上@Configuration,另外注意该配置类需要放入启动类所在包及其子包中才能被扫描到

                        

第二种为@Import,重点

我们可以在启动类中加上注解@Import(xxx.class),Spring就会自动将xxx类对应的bean对象注入IOC容器,实际应用过程,导入的一般为  配置类  或者  ImportSelector接口实现类 以及使用 EnableXxxx注解,封装@Import注解

如果config类不在启动类所在包以及子包中,就扫描不到,此时可以用@Import注解,相当于手动扫描。

如果有多个配置类,我们可以以数组的形式注入,为了让代码更加优雅,此处导入ImportSelector接口实现类,另外将配置类名而将它们写入配置文件中,让程序更灵活

在resources中创建一个File,将配置类名按行写入其中。

我们创建一个CommonImportSelector类实现ImportSelector接口并重写方法,从配置文件中读取配置类名,保存在列表中,并返回列表

另外我们可以添加组合注解来使代码看起来更简洁

直接在启动类上用组合注解即可

注册条件

我们为注入的对象  设置具体属性值

用@Value注解 将配置文件中的属性值注入

但是如果将配置文件中的属性值注释掉,程序就会报错无法解析

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

我们希望正常配置能够正常解析,如果没有正常配置,便不再注入这个对象

Springboot提供了注册生效条件的注解@Conditional

@ConditonalOnProperty

配置好,则正常注入,未配置好,则报错。

正常报错,在19行需要获取Country.class时由于未配置属性,故报错

如果我们正常配置,则可以正常注入        ​​​​​​​        ​​​​​​​                ​​​​​​​        

@ConditionalOnMissingBean

不存在相应类型的Bean,才注入对应的Bean

实例:不存在Country类型的Bean,才注入Province,当Country已注入时,会报错

注释掉Country对应属性时,即可正常注入Province

@ConditionalOnClass

存在指定类时,才声明该bean

实例:需要存在spring-web依赖,否则注入失败

添加依赖即可正常注入

自动配置原理

在提供的第三方jar包内,为了达到自动配置的效果,需要提供以下部分内容

1.提供Bean对象

2.提供相应的配置类  以及 自动配置类(两注解 @Import 和 @AutoConfiguration)

3.提供.imports 配置文件  (将自动配置类的全类名配置到其中)

如何自己制作一个starter

步骤1:创建dmybatis-spring-boot-autoconfigure模块,提供自动配置功能,并自定义配置文件META-INF/spring/xxx.imports

步骤2:创建dmybatis-spring-boot-starter模块,在starter中引入自动配置模块

创建模块

  

在创建好的dmybatis-spring-boot-autoconfigure模块的pom.xml文件中 导入mybatis-spring-boot-autoconfigure中的依赖

                             

然后在创建MybatisAutoConfig类 配置SqlSessionFactoryBean以及MapperScannerConfigurer

创建resources包,按格式创建以下包,在.imports中写入配置类的全类名

最后在dmybatis-spring-boot-starter的pom.xml中引入刚刚写好的自动装配类依赖,同时将自动装配类中的依赖也引入进去

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值