本节核心:使用spring装配对象(上节spring02是使用spring创建对象并装配属性,本节叙述spring装配对象)
一、理解ioc
1、ioc不是一门spring技术,而是一种编程思想
(这种思想就是(1)spring创建对象(通过反射完成)(2)spring装配对象属性)
2、ioc实现是通过ioc容器(ioc容器就是beans工厂--bean Factory)实现的。
二、示例展示
包含内容:
(1)interface:UserDao
(2)class:UserDaoImp
(3)interface:service
(4)class:ServiceImp
(5)class:Test
(6)beans.xml
(1)、(2)、(3)、(4)与spring02相同,只有(5)、(6)做了修改
(5)class:Test.java
package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import service.Service; import serviceimp.ServiceImp; import userdaoimp.UserDaoImp; import userdaoimp.UserDaoMySqlImp; public class Test { public static void main(String[] args) { ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml"); ServiceImp service=(ServiceImp)ac.getBean("service"); service.getUser(); } }
(6)beans.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--bean就是java对象,由spring来创建和管理 --> <bean id="mysqlDao" class="userdaoimp.UserDaoMySqlImp"></bean> <bean id="userdaoimp" class="userdaoimp.UserDaoImp"></bean> <bean id="service" class="serviceimp.ServiceImp"> <property name="userDao" ref="mysqlDao"></property>
<--这里的ref就是只应用一个名为mysqlDao的对象,在上边已经创建了mysqlDao对象->
</bean> </beans>
三、欢迎指出错误