当前位置: 首页 > news >正文

北滘网站设计wordpress 询价记录

北滘网站设计,wordpress 询价记录,龙文网站建设,菲律宾做网站由于需要框架能实现多态#xff0c;达到控制反转解耦。所以容器还是需要的#xff0c;容器的存在可以简化对象获取工作#xff0c;但是容器也不是万能的。合理使用即可#xff0c;Spring对我来说太庞大了#xff0c;用不着#xff0c;为此给框架写一个迷你版容器。 容器…由于需要框架能实现多态达到控制反转解耦。所以容器还是需要的容器的存在可以简化对象获取工作但是容器也不是万能的。合理使用即可Spring对我来说太庞大了用不着为此给框架写一个迷你版容器。 容器配置还是继承以前用spring.net的容器配置名称为ObjConfig.xml放在程序根目录供容器初始化 ?xml version1.0 encodingutf-8? objects xmlnshttp://www.springframework.net default-autowirebyType!--这个配置文件主要用来配置系统的业务服务类不要删除、修改提交其他人添加的配置新加配置提交时主要同时提交配置使用的动态库--!--否则会造成其他人更新后报错--!--检验数据访问层底层。postgresql配LIS.DAL.Base.PostgreSqlBase--object idLisMianDbFactory typeLIS.Dal.Base.PostgreSqlBase,LIS.Dal.Base singletonfalse/object/objects容器实现 package LIS.Core.Context;import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; import java.lang.reflect.Type; import java.net.URL; import java.net.URLClassLoader; import java.util.List; import java.util.HashMap; import java.util.*;//一个迷你版容器供ORM等控制反转使用 public class ObjectContainer {///用来存类型private static ListClass classListnew ArrayListClass();///存类的查找关系private static HashMapString, Integer classIndexMap new HashMapString, Integer();/// summary/// 按类型返回强类型的对象,一般用接口获得实现类/// /summary/// typeparam nameT对象类型/typeparam/// returns返回的对象/returnspublic static T T GetObject(){Type type ObjectContainer.class.getClass().getGenericSuperclass();Class ctype.getClass();Class? parentc.getSuperclass();String cNamec.getName();if(classIndexMap.containsKey(cName)){//创建对象Object o GetObject(cName);return (T)o;}if(parent!null){String parentNameparent.getName();if(classIndexMap.containsKey(parentName)){//创建对象Object o GetObject(parentName);return (T)o;}}Class? interfaceArr[]c.getInterfaces();if(interfaceArr!nullinterfaceArr.length0){for(int j0;jinterfaceArr.length;j){String interfaceNameinterfaceArr[j].getName();if(classIndexMap.containsKey(interfaceName)){//创建对象Object o GetObject(interfaceName);return (T)o;}}}return null;}/// summary/// 按名称返回强类型的对象/// /summary/// typeparam nameT对象类型/typeparam/// param namename对象名称/param/// returns返回的对象/returnspublic static T T GetTypeObject(String name){Object oGetObject(name);return (T)o;}/// summary/// 按名称返回对象/// /summary/// param namename对象名称/param/// returns返回对象/returnspublic static Object GetObject(String name){if(classIndexMap.containsKey(name)){try {int indexclassIndexMap.get(name);Class cclassList.get(index);//创建对象Object o c.newInstance();return o;}catch (Exception ex){ex.printStackTrace();}}return null;}/// summary/// 用类型全名和程序集全名获得类型/// /summary/// param nametypeName类型全名/param/// param nameassemblyName程序集名/param/// returns/returnsprivate static Class GetType(String typeName, String assemblyName){try {//得到根路径Class? clazz ObjectContainer.class;ClassLoader classLoader clazz.getClassLoader();URL resourceURL1 classLoader.getResource();String bashePath resourceURL1.getFile();//组装成jar包路径String jarPathbashePathassemblyName.jar;File file new File(jarPath);if (!file.exists()) {throw new Exception(未能找到jarPath的文件);}//反射得到类型//自己生成jar包路径URL url file.toURI().toURL();URL[] urls new URL[]{url};//加载程序集URLClassLoader loader new URLClassLoader(urls);//加载类Class c loader.loadClass(typeName);if(c!null){return c;}else{throw new Exception(未能构建类型typeName);}}catch (Exception ex){ex.printStackTrace();}return null;}/// summary/// 从根目录的ObjConfig初始化IOC容器还是按Spring.Net的配置格式/// /summarypublic static void InitIoc() {try {//得到根路径Class? clazz ObjectContainer.class;ClassLoader classLoader clazz.getClassLoader();URL resourceURL classLoader.getResource(resources/ObjConfig.xml);String IocPath resourceURL.getFile();//判断配置是否存在File file new File(IocPath);if (!file.exists()) {System.out.println(resources/ObjConfig.xml文件不存在,请确认!);return;}//解析xmlDocumentBuilderFactory factory DocumentBuilderFactory.newInstance();DocumentBuilder builder factory.newDocumentBuilder();Document document builder.parse(file);// 获得根节点Element rootElement document.getDocumentElement();// 获得根节点下的所有子节点NodeList students rootElement.getChildNodes();for (int i 0; i students.getLength(); i) {// 由于节点多种类型而一般我们需要处理的是元素节点Node childNode students.item(i);// 元素节点就是非空的子节点也就是还有孩子的子节点if (childNode.getNodeType() Node.ELEMENT_NODE) {Element childElement (Element) childNode;//不是对象配置元素就忽略if(childElement.getNodeName()! object){continue;}//解析类型配置String typechildElement.getAttribute(type);//是否单例String singletonchildElement.getAttribute(singleton);//取对象idString idchildElement.getAttribute(id);//分割类全面和包名String [] arrtype.split(,);//反射得到类型Class cGetType(arr[0],arr[1]);//添加到类型列表classList.add(c);//存储索引int indexclassList.size()-1;Class? parentc.getSuperclass();//有id就存id映射if(id!nullid!){if(classIndexMap.containsKey(id)){throw new Exception(已经包含了id为:id的类型);}classIndexMap.put(id,index);}//有父类就存父类映射if(parent!null){String parentNameparent.getName();if(!classIndexMap.containsKey(parentName)){classIndexMap.put(parentName,index);}}//得到所有实现的接口Class? interfaceArr[]c.getInterfaces();//循环存接口映射if(interfaceArr!nullinterfaceArr.length0){for(int j0;jinterfaceArr.length;j){String interfaceNameinterfaceArr[j].getName();if(!classIndexMap.containsKey(interfaceName)) {classIndexMap.put(interfaceName, index);}}}}}}catch (Exception ex) {ex.printStackTrace();}} } 使用容器 运行测试成功取到PG数据库的数据 经过下午两小时的努力LIS.Core的一个核心小功能实现了
http://www.w-s-a.com/news/539344/

相关文章:

  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单
  • 番禺网站设计威海微网站建设
  • 新乡网站建设服务网站建设的点子
  • 赛罕区城乡建设局网站什么是新媒体运营
  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接
  • 保定网站建设多少钱公司网页网站建设+ppt模板下载
  • 用户上传商品网站用什么做建设跳转公积金网站
  • 买程序的网站上海市网站建设公司
  • 南通网站建设排名公司哪家好wordpress网站图片迁移
  • 河南省汝州文明建设门户网站博客网站建设源码
  • 单位建设网站的请示手机移动端网站案例
  • 国内做网站的企业网站结构有哪些类型
  • 南通网站建设制作公司苏州好的网站公司名称