美文网首页spring 相关
SpringIOC容器手写( 一)--XML文件解析

SpringIOC容器手写( 一)--XML文件解析

作者: aix91 | 来源:发表于2019-01-19 15:30 被阅读0次

    1. 安装Dom4j包

            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
    

    2. Element:

    <bean id="mainJedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    

    element.getName() = 'bean'

    3. Attribute

    Attribute 是Element下面的键值对,如"id"是 attribute de name,"mainJedisConnFactory"是attribute 的 data。

    4. 实例

    • 提取Element
     public void parseXml() {
            SAXReader reader = new SAXReader();
            try {
                Document document = reader.read(getResourceAsStream("redis.xml"));
                Element rootElement = document.getRootElement();
                List<Element> beans = rootElement.elements("bean");
                for (Element bean : beans) {
                    System.out.println(bean.getName());
                    printAttrs(bean);
                    List<Element> props = bean.elements("property");
                    props.forEach(p->printAttrs(p));
                }
            } catch (DocumentException e) {
                e.printStackTrace();
            }
        }
    
    • 提取Element下的Attribute
     public void printAttrs(Element element){
            List<Attribute> attrs = element.attributes();
            for (Attribute attr : attrs) {
                System.out.println(attr.getName() + " => " + attr.getData());
            }
        }
    
    • 输出
    bean
    id => mainJedisConnFactory
    class => org.springframework.data.redis.connection.jedis.JedisConnectionFactory
    name => hostName
    value => ${redis.main.host}
    name => port
    value => ${redis.main.port}
    name => password
    value => ${redis.main.password}
    name => database
    value => ${redis.main.db}
    name => timeout
    value => ${redis.main.timeout}
    name => usePool
    value => true
    bean
    id => mainRedisTemplate
    class => org.springframework.data.redis.core.RedisTemplate
    name => connectionFactory
    ref => mainJedisConnFactory
    

    相关文章

      网友评论

        本文标题:SpringIOC容器手写( 一)--XML文件解析

        本文链接:https://www.haomeiwen.com/subject/bacidqtx.html