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

来源:互联网 发布:淘宝抢红包微信群 编辑:程序博客网 时间:2024/06/06 17:06
--IOC(控制反转)是一种概念,一种思想解耦合通过spring容器管理和装配对象,不用自己手动创建对象1.依赖注入(DI)(1)基于XML的DI<bean id="" class=""></bean>注意:id是唯一的,class是类的全限定类名,不能是接口必须提供对应的setter方法初始化方法init-method销毁时方法destory-methoda.设值注入(无参构造方法)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的DIxml中配置组件扫描器<context:component-scan base-package="com.summary.annotation"/>a.相当于bean的id,用来创建对象.只能在类上使用,不指定value属性,bean的id是类名首字母小写@Component("student") --普通Bean@Service --service层@Respository --dao层@Controllerb.给简单类型数据赋值,既可以加到属性上,也可以加到setter方法上@Value("张三")c.给引用类型赋值,通过类型byType,既可以加到属性上,也可以加到setter方法上@Autowiredd.给引用类型赋值,通过名字byName,既可以加到属性上,也可以加到setter方法上@Autowired@Qualifier("classRoom") --别的bean的ide.指定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)的查找


原创粉丝点击