目录
一.配置优先级
//命令行参数的优先级最高
二.Bean的管理
1.获取bean
注入ioc容器对象
bean对象名称--默认对象首字母小写 获取到的对象是object--做一个强转
其中 获取的对象一样--说明ioc容器中的bean对象只有一个
2.bean作用域
spring容器中 bean对象默认是单例的 只有一个实例对象---单例还是多例取决于bean的作用域
//bean的作用域:scope
@Test public void testScope(){ for (int i = 0; i <10 ; i++) { DeptController deptController = applicationContext.getBean(DeptController.class); System.out.println(deptController); } }
3.第三方bean
对于只读的类--就不能用注解直接声明bean
------无法使用
写在了启动类当中--我们要尽量保证启动类的纯粹性--不建议写在启动类当中
单独写一个配置类
三.SpringBoot原理
Spring--目前世界上最流行的java框架 使我们更加容易的构建java项目
springboot之所以使用起来简单快捷:底层提供重要功能(起步依赖 自动配置)
起步依赖:maven的依赖传递
自动配置:
自动配置原理
引入的第三方依赖的bean没有生效(没有被spring的组件扫描到)
//扫不到上面的com.example
此时,仍然较为繁琐
开启第三方依赖的自动配置功能:
就相当于导入了对应的bean和配置类
原理分析:
源码跟踪:
springboot启动类--又称引导类
打开启动类:
用来导入指定的bean或者配置类
ctrl+F-------自动搜索---------两次shift--打开源码
conditional:
条件装配的注解 condition--条件的意思
自动配置案例:(自定义starter分析)
starter--springboot的起步依赖