spring中的工厂原理简单模拟-创新互联

spring中的工厂原理简单模拟

站在用户的角度思考问题,与客户深入沟通,找到东丽网站设计与东丽网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟空间、企业邮箱。业务覆盖东丽地区。

package service;

import dao.User;
import factory.Factory;

public class Test {
// private static User user = new UserImpl();//耦合度太高

private static User user = (User) Factory.getIntence().getBean("userdao");
public static void main(String[] args) {
user.saveUser();
}
}

package dao;

public interface User {
public void saveUser();
public void deleteUser();
public void updateUser();
public void findUser();
}

import dao.User;
public class UserImpl implements User{
public void saveUser() {
System.out.println("保存用户");
}
public void deleteUser() {
System.out.println("删除用户");
}
public void updateUser() {
System.out.println("更新用户");
}
public void findUser() {
System.out.println("查找用户");
}
}

package factory;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

public class Factory {
private static Factory factory;
//ResourceBundle只能读取资源文件 注意:只能读不能写 只能读资源文件
//只能读取类的路径下的
private static ResourceBundle bundle = ResourceBundle.getBundle("bean");//参数是资源文件的位置,按照报名.资源文件名来写
private static Map map = new HashMap();//在spring中相当于web容器 用来保证dao层的对象唯一
static{
factory=new Factory();
try {
Enumeration keys = bundle.getKeys();
while(keys.hasMoreElements()){
String key = keys.nextElement();//得到一个key
String classpath = bundle.getString(key);
//使用反射创建对象实例
Object object = Class.forName(classpath).newInstance();
map.put(key, object);
}
} catch (Exception e) {
throw new RuntimeException();
}
}
private Factory(){
}
public static Factory getIntence(){
return factory;
}
/** 为了防止多个线程同时调用这个方法出现线程安全问题


/
public synchronized Object getBean(String param){
/Object bean = null;
try {
//根据参数,在资源文件中获取类的全路径
String classpath = bundle.getString(param);
//使用反射 创建对象
bean = Class.forName(classpath).newInstance();
return bean;
} catch (Exception e) {
throw new RuntimeException(e);
}
/
return map.get(param);
}
}

spring的核心ioc和aop 其中ioc的意思就是放弃创建下一层对象的权利,把这个权利交给spring工厂 上类中factory

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:spring中的工厂原理简单模拟-创新互联
文章来源:http://azwzsj.com/article/dphgpp.html