bean.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"
xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 这一步是创建类的对象,注意:此时已经创建好了 spring1 的对象,并不是在 context.getBean 的时候才创建对象,getBean 只是获取对象的地址,并赋值给一个引用-->
<bean id="bean1" class="com.mx.ioc.spring1">
<!-- 这一步是为属性注入值
constructor-arg:构造参数方法注入,name属性是所要注入的属性名称,value属性是所要注入的属性值
property: set 方法注入,name属性是所要注入的属性名称,value属性是所要注入的属性值,ref表示引用另一个对象
-->
<constructor-arg name="username" value="maxiao"></constructor-arg>
<property name="username2" value="maxiao2"></property>
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.mx.ioc.UserDao">
</bean>
<!-- 注解的方式实现IOC -->
<context:component-scan base-package="com.mx.ioc"></context:component-scan>
</beans>
UserDao类:
package com.mx.ioc;
import org.springframework.stereotype.Component;
@Component(value="userdao")
public class UserDao {
public String username3;
public void add(){
System.out.println("UserDao's add method");
}
public void setUsername3(String username3) {
this.username3 = username3;
}
}
Spring1 类,在spring1类中利用创建好的 userdao 对象,调用 UserDao 类里面的 add 方法:
package com.mx.ioc;
public class spring1 {
public String username;
public String username2;
public UserDao userDao;
public spring1(String username){
this.username = username;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void setUsername2(String username2){
this.username2=username2;
}
public void add(){
System.out.println("add....");
userDao.add();//调用 UserDao 里面的方法
}
}
测试程序:
package com.mx.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class testIOC {
public void testspring1(){
ApplicationContext ac = new ClassPathXmlApplicationContext("bean1.xml");
spring1 s = (spring1) ac.getBean("bean1"); //创建Spring1的对象
s.add();
System.out.println(s.username);
System.out.println(s.username2);
}
public static void main(String[]args){
testIOC t = new testIOC();
t.testspring1();
}
}