1、依赖注入的概念
spring的两个核心概念:一个是控制反转IoC,也可以叫做依赖注入DI。还有一个是面向切面编程AOP。
控制反转:当某个java对象需要(依赖)另一个java对象时,不是自身直接创建依赖对象,而是由实现IoC的容器(如spring框架的IoC容器)来创建,并将它注入需要这个依赖对象的java对象中。
2、spring的依赖注入
2.1、构造器注入
<bean id="accoutDaoImpl"class="cn.csdn.dao.AccoutDaoImpl" scope=”singleton”/>
<bean id="accoutServicImpl"class="cn.csdn.service.AccoutServicImpl" scope=”">
<!-- 构造器注入方式-->
<constructor-argref="accoutDaoImpl"/></bean>
2.2、设值(set方法)注入
<bean id="accountDaoImpl"class="cn.csdn.dao.AccoutDaoImpl"/>
<bean id="accoutServicImpl"class="cn.csdn.service.AccoutServicImpl">
<!-- 设值(set方法)注入 -->
<property name="accountDaoImpl"ref="accoutDaoImpl"/> </bean>
3、spring的容器
spring管理的基本单元是Bean,在spring的应用中,所以的组件都是一个个的Bean,它可以是任何的java对象。spring负责创建这些Bean的实例。并管理生命周期。而spring框架是通过其内置的容器来完成Bean的管理的,Bean在spring的容器中生存着,使用时只需要通过它提供的一些方法从其中获取即可。
spring的容器有两个接口:BeanFactory和ApplicationContext 这两个接口的实例被陈为spring的上下文。
ApplicationContext ac = new ClassFathXmlApplicationContext("app*.xml");
AccountService accountService = (AccountService)ac.getBean("accountServiceImpl");
4、使用xml装配Bean
4.1、自动装配
no:不使用自动装配。必须通过ref元素指定依赖,这是默认设置。由于显式指定协作者可以使配置更灵活、更清晰,因此对于较大的部署配置,推荐采用该设置。而且在某种程度上,它也是系统架构的一种文档形式。