目录展示

UserDao接口
package com.hopu.dao;
public interface UserDao {
public void save();
}
UserDaoImpl实现类
package com.hopu.dao.impl;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.hopu.dao.UserDao;
public class UserDaoImpl implements UserDao {
private int age;
private List<String> strList;
private Map<String,String> userMap;
private Properties properties;
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public Map<String, String> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, String> userMap) {
this.userMap = userMap;
}
public List<String> getStrList() {
return strList;
}
public void setStrList(List<String> strList) {
this.strList = strList;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void save() {
System.out.println("用户保存了");
}
public void init() {
}
public void destroy() {
}
public UserDaoImpl() {
super();
System.out.println("对象创建了");
}
public UserDaoImpl(String name) {
super();
System.out.println("对象创建了");
}
@Override
public String toString() {
return "UserDaoImpl [age=" + age + ", strList=" + strList + ", userMap=" + userMap + ", properties="
+ properties + "]";
}
}
DynamicFactoryBean类
package com.hopu.factory;
import com.hopu.dao.UserDao;
import com.hopu.dao.impl.UserDaoImpl;
public class DynamicFactoryBean {
public UserDao createUserDao(){
return new UserDaoImpl();
}
}
StaticFactoryBean类
package com.hopu.factory;
import com.hopu.dao.UserDao;
import com.hopu.dao.impl.UserDaoImpl;
public class StaticFactoryBean {
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}
UserService接口
package com.hopu.service;
public interface UserService {
public void save();
}
UserServiceImpl实现类
package com.hopu.service.impl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hopu.dao.UserDao;
import com.hopu.service.UserService;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void save() {
userDao.save();
}
}
applicationContext-userDao.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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用无参构造方法实例化 -->
<bean id="userDao" class="com.hopu.dao.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
<property name="age" value="18"></property>
<property name="strList">
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
<property name="userMap">
<map>
<entry key="1" value="张三"/>
<entry key="2" value="李四"/>
</map>
</property>
<property name="properties">
<props>
<prop key="1">aaa</prop>
<prop key="2">bbb</prop>
<prop key="3">ccc</prop>
</props>
</property>
</bean>
</beans>
applicationContext.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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用无参构造方法实例化 -->
<!-- <bean id="userDao" class="com.hopu.dao.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
<property name="age" value="18"></property>
<property name="strList">
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
<property name="userMap">
<map>
<entry key="1" value="张三"/>
<entry key="2" value="李四"/>
</map>
</property>
<property name="properties">
<props>
<prop key="1">aaa</prop>
<prop key="2">bbb</prop>
<prop key="3">ccc</prop>
</props>
</property>
</bean> -->
<!-- 工厂静态方法实例化 -->
<!-- <bean id="staticFactoryBean" class="com.hopu.factory.StaticFactoryBean" factory-method="createUserDao" /> -->
<!-- 工厂实例方法实例化 -->
<!-- <bean id="factoryBean" class="com.hopu.factory.DynamicFactoryBean"/>
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/> -->
<!-- Bean的依赖注入(引用类型) -->
<!-- 通过有参构造方法注入userDao到userService -->
<!-- <bean id="userService" class="com.hopu.service.impl.UserServiceImpl">
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean> -->
<!-- 通过set方法注入userDao到userService -->
<!-- <bean id="userService" class="com.hopu.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean> -->
<!-- 通过P命名空间注入userDao到userService -->
<bean id="userService" class="com.hopu.service.impl.UserServiceImpl" p:userDao-ref="userDao"/>
<!-- Bean的依赖注入(其他类型) -->
<import resource="applicationContext-userDao.xml"/>
</beans>
testIoc测试类
package ioc;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hopu.dao.UserDao;
public class TestIoc {
@Test
public void testIoc(){
ClassPathXmlApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
System.out.println(userDao);
applicationContext.close();
}
}