spring(ioc)

1.核心基础
1-1.基础注解

注解作用备注
@Bean容器中注册组件
@Primary同类组件如果有多个,标注主组件
@DependsOn组件之间声明依赖关系
@Lazy组件懒加载(最后使用的时候才创建)
@Scope声明组件的作用范围(SCOPE_PROTOTYPE,SCOPE_SINGLETON,)
@Primary同类组件如果有多个,标注主组件
@Configuration声明这是一个配置类,替换以前(beans.xml)理解proxyBeanMethods
@Controller
@Service
@Repository
@Component
@Indexed加速注解,所有标注了@Indexed的组件,直接会启动快速加载
@Order数字越小优先级越高,越先工作
@ComponentScan包扫描
@ComponentScans包扫描
@Conditional条件注入 1,2 @ConditionalOnMissingBean自定义
@Import导入第三方jar包中的组件
@ImportResource导入以前的xml配置文件,让其生效
@Profile基于多环境激活
@PropertySource外部properties配置文件和JavaBean进行绑定.结合ConfigurationProperties
@PropertySources
@Autowired自动装配
@Qualifier精确指定
@Value取值、计算机环境变量、JVM系统。xxxxSpringBoot支持各种外部化配置

2.ioc
ioc就是容器,降低耦合,控制反转,把创建对象和对象之间调用讲给spring
2-1.底层原理
xml 解析 工厂模式 反射
ioc接口
1.BeanFactory:内部使用
2.ApplicationContext:BeanFactory子接口 开发常用功能更强大
Bean管理
创建及注入
1.xml
id属性:唯一标识
class属性:类全路径(包路径)
2.创建对象,默认无参构造创建
3.基于xml注入属性
3-1.DI依赖注入
set注入
使用有参构造注入
xml注入标签

	 	set
		<property name="" value=""></property>
		有参构造
		<constructor-arg name=" value="></constructor -arg>

	4.p命名空间(了解)
	5.xml注入其他属性
		<null/> 
		特殊符号<![CDATA[值]]>
	6.外部bean注入
		

在这里插入图片描述
7.内部bean注入
在这里插入图片描述8.注入属性-级联赋值

第二种
在这里插入图片描述
集合注入
在这里插入图片描述

在这里插入图片描述
3.ioc两种bean管理
1.spring中两种bean,普通bean,和工厂bean
2.普通bean:在配置文件中定义bean,返回这种bean
3.实现FactoryBean可以返回,其他类型Bean

在这里插入图片描述

ioc操作Bean(Bean作用域)
1.创建bean单实例或多实例,默认单实例对象
2.scope属性值
singleton 默认单实例
prototype 多实例
在这里插入图片描述 这里个属性区别
1.singleton 单列 prototype 多例
2.singleton 加载配置文件创建 而prototype是调用getBean方法是创建多实例

ioc操作bean(bean的生命周期)
1.生命周期
1创建到销毁
2.bean的生命周期
1.通过构造器创建bean的实例
2.为bean的属性设置值和对其他bean引用(set方法)
3.bean的初始化方法(需要配置)
4.bean可以使用(对象获取到了)
5.当容器关闭时候,调用bean的销毁方法(配置)
3.bean的后置处理器,bean生命周期有七步
23之间:把Bean实例传递bean后置处理器的方法
34:把Bean实例传递bean后置处理器的方法
后置处理器实现 接口 BeanPostProcessor
在这里插入图片描述在这里插入图片描述

ioc操作bean(xml自动装配)
1.根据名称属性自动装配

在这里插入图片描述
ioc操作bean(外部属性文件)
1.直接引入
在这里插入图片描述 2.引入外部文件属性
(1)引入德鲁伊依赖
(2)写外部配置 左边名称随意
在这里插入图片描述
(3)把命名空间

在这里插入图片描述
(4)用context引入文件

在这里插入图片描述
ioc操作bean(注解)
1.注解 @Component
2.基于注解创建对象
1.引入aop依赖
2.开启组件扫描
在xml引入context命名空间
在这里插入图片描述
在这里插入图片描述对比只扫描里面的
在这里插入图片描述
不扫描
在这里插入图片描述
3.基于注解属性注入
1.@AutoWired:根据属性类型自动装配
2.@Qualifier: 根据名称进行注入 要和@AutoWired一起使用 一个接口有多个实现类 有俩个以上属性找不到用
3.@Resource:根据属性 名称注入 javax扩展包里的 不是spring里的
在这里插入图片描述
4.@Value:注入属性
4.完全注解开发
1.创建配置类,代替xml
@Configuration
@ComponentScan(basePackages={“com.spring”})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值