Spring_IOC_单例模式和多例模式
1.目录结构

2.User
package com.cloud.spring.model; /** * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:普通的JavaBean */ public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
3.UserDAO
package com.cloud.spring.dao; import com.cloud.spring.model.User; /** * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:定义接口,定义规范,必须实现save方法 */ public interface UserDAO { public void save(User user); }
4.UserDAOImpl
package com.cloud.spring.dao.imp; import com.cloud.spring.dao.UserDAO; import com.cloud.spring.model.User; /** * * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:实现接口,重写方法 */ public class UserDAOImpl implements UserDAO { private int daoId = 0; public void save(User user) { System.out.println("user saved!"); } public int getDaoId() { return daoId; } public void setDaoId(int daoId) { this.daoId = daoId; } /*@Override public String toString(){ return "daoId="+daoId; }*/ }
5.UserService
package com.cloud.spring.service; import com.cloud.spring.dao.UserDAO; import com.cloud.spring.model.User; /** * * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:真正的业务处理 */ public class UserService { private UserDAO userDAO; public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } }
6.TestSpring
package com.cloud.spring.test; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cloud.spring.dao.UserDAO; import com.cloud.spring.service.UserService; public class TestSpring { public static void main(String[] args) { try { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); //如果bean配置的是单例模式singleton,那么得到的两个bean是同一个bean //如果bean配置的是多例模式prototype,那么得到的两个bean是不同的bean UserDAO userDAO = (UserDAO) ctx.getBean("userDAO"); System.out.println(userDAO); UserDAO userDAO2 = (UserDAO) ctx.getBean("userDAO"); System.out.println(userDAO2); } catch (BeansException e) { e.printStackTrace(); } } }
7.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"> <!-- UserService 中有个实例域UserDAO,需要将UserDAOImp的一个实例注入到UserDAO中去 --> <!-- 如果定义scope是单例模式,那么每次使用的bean都是同一个 --> <!-- scope="singleton"为单例模式,scope="prototype"为多例模式,默认是 singleton--> <bean id="userDAO" class="com.cloud.spring.dao.imp.UserDAOImpl" scope="singleton"/> <bean id="userService" class="com.cloud.spring.service.UserService" > <property name="userDAO" ref="userDAO" /> </bean> </beans>
    http://www.cnblogs.com/makexu/

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号