spring学习--总结IOC(控制反转)

本文详细介绍了Spring框架中的依赖注入(DI)概念,包括基于XML和注解的方式,并讲解了不同类型的注入方法,如设值注入、构造注入及自动注入等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--IOC(控制反转)

	是一种概念,一种思想
	解耦合
	通过spring容器管理和装配对象,不用自己手动创建对象
	
1.依赖注入(DI)

	(1)基于XML的DI
		<bean id="" class=""></bean>
		注意:id是唯一的,class是类的全限定类名,不能是接口
		必须提供对应的setter方法
			初始化方法		init-method
			销毁时方法		destory-method
		
		a.设值注入(无参构造方法)
			i.简单类型数据
				<property name="属性名" value="普通值"/>
			ii.引用类型数据
				<property name="属性名" ref="引用bean的id"/>
		b.构造注入(有参构造方法)
			i.简单类型数据
				<constructor-arg name="形参名" value="普通值"/>
			ii.引用类型数据
				<constructor-arg name="形参名" ref="引用bean的id"/>
				<constructor-arg index="形参名的位置,从0开始" ref="引用bean的id"/>
		c.对于引用类型属性的自动注入
			i.byName	根据名称自动注入
				<bean autowire="byName"/>
			ii.byType	根据类型自动注入(同类型只能有一个,多了spring就不知道该注入谁)
				<bean autowire="byType"/>
				
	(2)基于Annotation的DI
		
		xml中配置组件扫描器<context:component-scan base-package="com.summary.annotation"/>
		
		a.相当于bean的id,用来创建对象.只能在类上使用,不指定value属性,bean的id是类名首字母小写
			@Component("student") --普通Bean
			@Service --service层
			@Respository --dao层
			@Controller
		b.给简单类型数据赋值,既可以加到属性上,也可以加到setter方法上
			@Value("张三")
		c.给引用类型赋值,通过类型byType,既可以加到属性上,也可以加到setter方法上
			@Autowired
		d.给引用类型赋值,通过名字byName,既可以加到属性上,也可以加到setter方法上
			@Autowired
			@Qualifier("classRoom") --别的bean的id
		e.指定bean对象的作用域
			@Scope("singleton")-- 默认是单例,只创建一个对象
			@Scope("prototype")-- 每次getBean()都创建一个新的对象
		f.Jdk自带的@Resource
			@Resource --不带参数,默认先byName再byType
			@Resource(name="") -- byName注入
		g.bean的生命始末
			@PostConstruct --在创建对象之后(xml中init-method)
			@PreDestory --在对象销毁之前(xml中destory-method)

2.依赖查找(DL)
	比较典型的是依赖于JNDI服务接口(Java Naming andDirectory Interface)的查找


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值