本节核心:使用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>
三、欢迎指出错误