Spring实战之使用Resource作为属性操作示例

本文实例讲述了Spring实战之使用Resource作为属性操作。分享给大家供大家参考,具体如下:

一 配置文件

<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:p="http://www.springframework.org/schema/p"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
   <bean id="test" class="org.crazyit.app.service.TestBean"
      p:res="classpath:book.xml"/>
</beans>

二 属性文件

<?xml version="1.0" encoding="GBK"?>
<计算机书籍列表>
   <书>
      <书名>疯狂Java讲义</书名>
      <作者>李刚</作者>
   </书>
   <书>
      <书名>轻量级Java EE企业应用实战</书名>
      <作者>李刚</作者>
   </书>
</计算机书籍列表>

三 Bean

package org.crazyit.app.service;
import org.springframework.core.io.Resource;
import org.dom4j.io.*;
import org.dom4j.*;
import java.util.*;
public class TestBean
{
  private Resource res;
  // res的setter方法
  public void setRes(Resource res)
  {
    this.res = res;
  }
  public void parse()throws Exception
  {
    // 获取该资源的简单信息
    System.out.println(res.getFilename());
    System.out.println(res.getDescription());
    // 创建基于SAX的dom4j的解析器
    SAXReader reader = new SAXReader();
    Document doc = reader.read(res.getFile());
    // 获取根元素
    Element el = doc.getRootElement();
    List l = el.elements();
    // 遍历根元素的全部子元素
    for (Iterator it = l.iterator();it.hasNext() ; )
    {
      // 每个节点都是<书>节点
      Element book = (Element)it.next();
      List ll = book.elements();
      // 遍历<书>节点的全部子节点
      for (Iterator it2 = ll.iterator();it2.hasNext() ; )
      {
        Element eee = (Element)it2.next();
        System.out.println(eee.getText());
      }
    }
  }
}

四 测试类

package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.springframework.core.io.*;
import org.crazyit.app.service.*;
public class SpringTest
{
  public static void main(String[] args) throws Exception
  {
    ApplicationContext ctx = new
      ClassPathXmlApplicationContext("beans.xml");
    TestBean tb = ctx.getBean("test" , TestBean.class);
    tb.parse();
  }
}

五 测试结果

book.xml
class path resource [book.xml]
疯狂Java讲义
李刚
轻量级Java EE企业应用实战
李刚

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Spring实战之ResourceLoader接口资源加载用法示例

    本文实例讲述了Spring实战之ResourceLoader接口资源加载用法.分享给大家供大家参考,具体如下: 一 代码 package lee; import org.springframework.context.*; import org.springframework.context.support.*; import org.springframework.core.io.Resource; import org.dom4j.*; import org.dom4j.io.*; impo

  • Spring实战之FileSystemResource加载资源文件示例

    本文实例讲述了Spring实战之FileSystemResource加载资源文件.分享给大家供大家参考,具体如下: 一 代码 package lee; import org.springframework.core.io.FileSystemResource; import org.dom4j.*; import org.dom4j.io.*; import java.util.*; import java.util.*; public class FileSystemResourceTest

  • 详解SpringBoot开发使用@ImportResource注解影响拦截器

    问题描述 今天在给SpringBoot项目配置拦截器的时候发现怎么都进不到拦截器的方法里面,在搜索引擎上看了无数篇关于配置拦截器的文章都没有找到解决方案. 就在我准备放弃的时候,在 CSDN 上发现了一篇文章,说的是SpringBoot 用了@ImportResource 配置的拦截器就不起作用了.于是我就赶紧到Application启动类看了一眼,果然项目中使用了@ImportResource 注解用于配置系统的参数. 代码如下: 启动类配置 package com.xx.xxx; impor

  • Spring实战之使用@Resource配置依赖操作示例

    本文实例讲述了Spring使用@Resource配置依赖操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml

  • Spring实战之使用ClassPathResource加载xml资源示例

    本文实例讲述了Spring使用ClassPathResource加载xml资源.分享给大家供大家参考,具体如下: 一 代码 package lee; import org.springframework.core.io.ClassPathResource; import org.dom4j.*; import org.dom4j.io.*; import java.util.*; import java.util.*; public class ClassPathResourceTest { p

  • Spring实战之ResourceLoaderAware加载资源用法示例

    本文实例讲述了Spring实战之ResourceLoaderAware加载资源用法.分享给大家供大家参考,具体如下: 一 配置文件 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/be

  • Spring实战之ServletContextResource访问资源文件示例

    本文实例讲述了Spring实战之ServletContextResource访问资源文件.分享给大家供大家参考,具体如下: 一 视图 <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <%@ page import="org.springframework.web.context.support.ServletCo

  • Springboot项目打war包docker包找不到resource下静态资源的解决方案

    前一段时间遇到一个问题,是关于读取项目中文件资源的问题.我是一个maven工程 我把一张照片放到resource下面,然后在本地读取的时候可以读取到,但是一旦打成WAR包以后就总是包找不到文件资源错误.我的war包是springboot打的war包,是内嵌的tomcat所以不解压,然后系统去找路径的时候会发现是个WAR包,而图片在WAR包内,所以找不到. 为了解决这个问题,我走了好多弯路,一直在路径上花费时间. 一开始使用修改配置文件的方式: # 配置静态资源访问前缀 spring.mvc.st

  • Spring 中 @Service 和 @Resource 注解的区别

    Spring 中 @Service 和 @Resource 注解的区别 1 前言 在咱们使用 spring 框架的时候,注解是"不可或缺"的一部分,她帮我们脱离了配置繁琐的 XML 文件的工作,但有一点却需要我们自己去把握,那就是"3何",即"何时何地用何注解?"在本篇博文中,作者就简单介绍一下如何恰当的使用 @Service 和 @Resource 这两个注解. 2 注解 2.1 @Service 当咱们需要定义某个类为一个 bean 的时候,

  • Spring框架中 @Autowired 和 @Resource 注解的区别

    Spring框架中 @Autowired 和 @Resource 注解的区别 在 spring 框架中,除了使用其特有的注解外,使用基于 JSR-250 的注解,它包括 @PostConstruct, @PreDestroy 和 @Resource 注释. 首先,咱们简单了解 @PostConstruct 和 @PreDestroy 注释: 为了定义一个 bean 的安装和卸载,我们可以使用 init-method 和 destroy-method 参数简单的声明一下 ,其中 init-meth

  • 详解Spring注解--@Autowired、@Resource和@Service

    什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件,那么.xml文件又会非常多.总之这将导致配置文件的可读性与可维护性变得很低 2.在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率 为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java

随机推荐