栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

模拟spring读取beans.xml实例化类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模拟spring读取beans.xml实例化类

1.创建pojo类Student


public class Student {
    private int id = 1;
    private String name  = "张三";
    private String clazz = "大四一班";
    
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getClazz() {
        return clazz;
    }
    
    public void setClazz(String clazz) {
        this.clazz = clazz;
    }
    
    

}
 

2.解析beans.xml文件


 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:aop="http://www.springframework.org/schema/aop" 
   xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
">
   
 
 
   
       
       
   

   

解析目的:解析xml中beans节点下bean,这里未进行迭代求取所需的id,直接默认取第0个

获取其中的bean的属性值class,然后利用反射创建类

2解析代码

package springReadBeanTest;

import org.w3c.dom.*;

import testspring.bean.Student;

import java.lang.reflect.Method;

import javax.xml.parsers.documentBuilder;
import javax.xml.parsers.documentBuilderFactory;


public class ParseXmlInithialize {
    
    public static void main(String[] args) {
         //1.创建documentBuilderFactory对象
        documentBuilderFactory factory = documentBuilderFactory.newInstance();
        //2.创建documentBuilder对象
        try {
            documentBuilder builder = factory.newdocumentBuilder();
            document d = builder.parse("src/springReadBeanTest/Beans.xml");
            NodeList sList = d.getElementsByTagName("beans");
            //element(sList);
            String a = node(sList);
           // System.err.println(a);
            @SuppressWarnings("unchecked")
            Class aClass = (Class) Class.forName(a);
            Student student = (Student) aClass.newInstance();
            System.err.println(student.getName());
        } catch (Exception e) {
            e.printStackTrace();
        }

                
    }
    
    //用Element方式
    public static void element(NodeList list){
        for (int i = 0; i             Element element = (Element) list.item(i);
            NodeList childNodes = element.getChildNodes();
            for (int j = 0; j                 if (childNodes.item(j).getNodeType()==Node.ELEMENT_NODE) {
                    //获取节点
                    System.out.print(childNodes.item(j).getNodeName() + ":");
                    //获取节点值
                    System.out.println(childNodes.item(j).getFirstChild().getNodevalue());
                     
                }
            }
        }
    }

    public static String node(NodeList list){
        for (int i = 0; i             Node node = list.item(i);
            NodeList childNodes = node.getChildNodes();
            for (int j = 0; j                 if (childNodes.item(j).getNodeType()==Node.ELEMENT_NODE) {
                    System.out.print(childNodes.item(j).getNodeName() + ":");
                   // System.out.println(childNodes.item(j).getFirstChild().getNodevalue());
                    NamedNodeMap nodeMap = childNodes.item(j).getAttributes();
                    String clazz = nodeMap.item(0).getNodevalue();
                    System.err.println("clazz"+clazz);
                    return clazz;
                }
            }
        }
        return null;
    }

    
    
    
    

}
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/713533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号