黑马2023Javaweb(14&15)|SpringBoot原理(配置优先级、Bean管理、SpringBoot原理)

 一:配置优先级

1.配置

为spring项目配置属性

通过配置文件,或通过 java系统属性与命令行参数

或 非IDEA中,已打包的项目通过命令行配置

1.1 配置文件优先级

在三个配置文件对于同一属性配置了3次,其优先级?

1.2通过 java系统属性与命令行参数  配置

1.3 已打包的项目 配置属性(java系统属性与命令行参数)

1.4 5种配置属性方法的优先级

二:Bean管理

1. 如何在IOC容器种手动的获取到Bean对象

2. 如何配置Bean对象的作用域

3. 如何管理第三方Bean对象

1.

1.手动获取Bean对象

默认情况下,SpringBoot项目在启动的时候会自动的创建IOC容器(也称为Spring容器),并且在启动的过程当中会自动的将bean对象都创建好,存放在IOC容器当中。应用程序在运行时需要依赖什么bean对象,就直接进行依赖注入就可以了。

主动获取bean对象,3种方式

根据bean对象的name , 类型,

1.1 3种方法示例

1.2 IOC容器中的对象默认单例

获取3次,但地址值相同,是同一个对象。在IOC容器中的对象默认单例,只有一个。

下一节:通过作用域可控制每次掉调用DeptController都可以创建一个bean对象

1.3 注意事项

2.配置Bean对象的作用域

IOC容器中的bean对象是单例还是多例,取决于bean对象的作用域

2.1 示例--单例bean对象

2.2 @lazy注解,延迟初始化(单例)

2.3@Scope("prototype")每次使用bean时,都会创建新的实例

bean对象对应的类前加

3.管理第三方Bean对象

自己定义的bean对象,通过以下这4个注解即可创建使用

3.1 声明配置类来管理第三方bean对象

3.2在配置类中的第三方bean中引入方法对象

作为形参注入

三:SpringBoot原理

Spring框架繁琐 

1、起步依赖

起步依赖的原理--maven的依赖传递

在Spring中,导入很多依赖

但在Spring Boot中导入一个依赖,可以通过maven的依赖传递自动导入其所需依赖

Spring:

Spring中导入了springboot-starter-web后,还要一个个导入下面其所以来的依赖,繁琐

2、自动配置

图中的问号:Spring Boot如何通过引入依赖,就可以自动将jar包中的第三方bean对象交给IOC容器管理,可以在项目中直接注入

(解析自动配置的原理就是分析在 SpringBoot项目当中,我们引入对应的依赖之后,是如何将依赖jar包当中所提供的bean以及配置类直接加载到当前项目的SpringIOC容器当中的。)

2.1 自动配置原理--面试高频

Spring Boot只会在子包下扫描Bean对象。对于扫描不到的Bean对象,无法注入。此时需要手动配置

(1)问题:扫描Bean对象的范围

(2)方案一:@ComponentScan 组件扫描(不推荐)

指明扫描的包范围

(3)@Import导入(普通类/配置类/ImportSelector接口实现类)

Spring Boot中 没有采纳@ComponentScan 组件扫描,配置范围(因为繁琐)。

逐个找要扫描的包

示例:

推荐使用@EnableXxxx注解

第三方依赖

(4)源码跟踪--@SpringBootApplication注解

(5)条件装配注解(@Conditional)

(6)小结--重点

2.2 案例

【Java Web】014 -- SpringBoot原理(配置优先级、Bean管理、SpringBoot原理)_springboot java class类spring bean管理-CSDN博客

三:Web后端开发总结

1.框架

SpringMVC:

在Spring框架的生态中,对web程序开发提供了很好的支持,如:全局异常处理器、拦截器这些都是Spring框架中web开发模块所提供的功能,而Spring框架的web开发模块,我们也称为:SpringMVC

SpringMVC不是一个单独的框架,它是Spring框架的一部分,是Spring框架中的web开发模块,是用来简化原始的Servlet程序开发的。

SSM:

外界俗称的SSM,就是由:SpringMVC、Spring Framework、Mybatis三块组成。

SpringBoot:

基于传统的SSM框架进行整合开发项目会比较繁琐,而且效率也比较低,所以在现在的企业项目开发当中,基本上都是直接基于SpringBoot整合SSM进行项目开发的。

2.技术栈

Filter过滤器、Cookie、 Session这些都是传统的JavaWeb提供的技术。(会话技术-过滤器,拦截器)
JWT令牌、阿里云OSS对象存储服务,是现在企业项目中常见的一些解决方案。
IOC控制反转、DI依赖注入AOP面向切面编程、事务管理全局异常处理拦截器等,这些技术都是 Spring Framework框架当中提供的核心功能。
Mybatis就是一个持久层的框架,是用来操作数据库的。

3.三层架构

在三层架构当中,Controller控制器层负责接收请求响应数据Service业务层负责具体的业务逻辑处理,而Dao数据访问层也叫持久层,就是用来处理数据访问操作的,来完成数据库当中数据的增删改查操作

在三层架构当中,前端发起请求首先会到达Controller(不进行逻辑处理),然后Controller会直接调用Service 进行逻辑处理, Service再调用Dao完成数据访问操作。

四:Maven高级

【Java Web】015 -- Maven高级(分模块设计与开发、继承与聚合、私服)-CSDN博客

 不难,看一下知识点即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值