`
xplq
  • 浏览: 89866 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

资源获取总结

阅读更多
资源获取总结:
Spring提供了很多 Resource 的实现,下面对以下四种进行总结:
ClassPathResource与FileSystemResource,ClassPathXmlApplicationContext与FileSystemXmlApplicationContextzhi。
以spring in actiong 中第一个例子为背景讨论:spring版的helloworld
程序清单1.1GreetingService接口,将实现与接口分离出来
package com.springinaction.chapter01.hello;

public interface GreetingService {
	public void sayGreeting();
}


程序清单1.2GreetingServiceImpl负责打印问候语
package com.springinaction.chapter01.hello;

public class GreetingServiceImpl implements GreetingService {
	private String greeting;	
	
	public GreetingServiceImpl() {}		
	/**
	 * @param greeting
	 */
	public GreetingServiceImpl(String greeting) {	
		this.greeting = greeting;
	}	
	public void sayGreeting() {
		System.out.println(this.greeting);		
	}	
	public void setGreeting(String greeting) {
		this.greeting = greeting;
	}

}

程序清单1.3在spring中配置helloworld,路径在src下面:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>    
    <bean id="greetingService" 
          class="com.springinaction.chapter01.hello.GreetingServiceImpl">
          <property name="greeting">
          	<value>Hello world!</value>
          </property>
    </bean>
</beans>

程序清单1.4helloworld示例的主类
package com.springinaction.chapter01.hello;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.Resource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloApp {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
	//代码分析,具体实现在后面
     }

}

具体实现一:ClassPathResource
Resource resource=new ClassPathResource("hello.xml");
BeanFactory factory=new XmlBeanFactory(resource);
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();

说明:使用ClassPathResource,只能直接使用:hello.xml,而:
(1)不能用src/hello.xml,
(2)不能用classpath前缀,如classpath:hello.xml,或classpath:src/hello.xml
(3)不能用绝对路径。
具体实现二:FileSystemResource
//直接使用src/hello.xml,而不能使用classpath:前缀
Resource resource=new FileSystemResource("src/hello.xml");
//或使用绝对路径,但不能用file:前缀
//Resource resource=new FileSystemResource("E:/Eclipse-JEE/mywork/SpringInAction/src/hello.xml");
BeanFactory factory=new XmlBeanFactory(resource);
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();

说明:使用FileSystemResource,
(1)使用:src/hello.xml,而不能使用classpath:前缀如
classpath:src/hello.xml,或classpath:hello.xml
(2)使用绝对路径,但不能用前缀file:
具体实现三:ClassPathXmlApplicationContext
//classpath:前缀可要可不要,不能用src/hello.xml,或classpath:src/hello.xml
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:hello.xml");//也可以为hello.xml
//或使用绝对路径,需要加上 file: 前缀表示这是绝对路径;注意,一定要加上file:
//ApplicationContext factory=new ClassPathXmlApplicationContext("file:E:/Eclipse-JEE/mywork/SpringInAction/src/hello.xml"); 	 
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();

总结:使用ClassPathXmlApplicationContext:
(1)classpath: 前缀可要可不要的, 默认就是指项目的classpath路径下面;但是不能用src/hello.xml,或classpath:src/hello.xml
(2)如果要使用绝对路径,需要加上 file: 前缀表示这是绝对路径;注意,一定要加上file:
具体实现四:FileSystemXmlApplicationContext
//没有盘符的是项目工作路径,即项目的根目录;不能写hello.xml,要写src/hello.xml
ApplicationContext factory=new FileSystemXmlApplicationContext("src/hello.xml");
//文件绝对路径:file:前缀可要可不要
//ApplicationContext factory=new FileSystemXmlApplicationContext("E:/Eclipse-JEE/mywork/SpringInAction/src/hello.xml");//也可加上file:
//可以使用classpath路径, 需要前缀 classpath:但是如加上classpath則不能加上src/否则报错。
//ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:hello.xml");
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();

总结:使用FileSystemXmlApplicationContext,默认表示的是两种:
(1)没有盘符的是项目工作路径,即项目的根目录;不能写hello.xml,要写src/hello.xml
(2)有盘符表示的是 文件绝对路径:file:前缀可要可不要
(3)如果要使用classpath路径,需要前缀classpath,但是加上classpath則不能加上src/否则报错。
	
//个人认为最简单的一种
ApplicationContext factory=new ClassPathXmlApplicationContext("hello.xml");
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();
分享到:
评论
1 楼 achenbj 2009-10-12  
写的很好,很有用,正好学习了,谢谢!~

相关推荐

    A2数字教育资源获取与评价 初中道德与法治.pdf

    "A2数字教育资源获取与评价——初中道德与法治"的主题旨在帮助教师掌握如何筛选、利用和评估适用于教学的数字资源,以提升教学质量,特别是对于初中阶段的道德与法治教育。 一、数字资源的选取与应用 在这个主题中...

    获取PE资源图标

    总结来说,获取PE资源图标涉及的知识点包括: 1. PE文件格式和资源结构 2. VB中访问系统资源的方法 3. 使用P/Invoke调用Windows API 4. 图标资源的处理,如`ICONINFO`结构体 5. 文件I/O操作,如保存图片文件 通过...

    从HttpServletRequest获取各种路径总结

    ### 从HttpServletRequest获取各种路径总结 #### 一、概述 在Java Web开发中,通过`HttpServletRequest`对象可以获取客户端请求的各种信息,包括但不限于路径信息。这些路径信息对于开发者来说至关重要,尤其是在...

    教育资源的获取

    ### 教育资源获取的关键知识点 #### 一、搜索引擎与搜索工具 - **定义与功能**:搜索引擎是一种网络服务工具,能够帮助用户在互联网中快速定位到所需信息。搜索引擎通过爬虫程序抓取网页信息,并对其进行索引和...

    JAVA获取各种路径总结

    ### JAVA 获取各种路径总结 在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中...

    数字教育资源获取与评价主题说明、资源及资源信息表 液体的压强.pdf

    《液体的压强》这篇教育资源主要探讨了液体压强的基本概念、特性以及其在实际生活中的应用。在教育过程中,教师需要引导学生理解和掌握以下几个关键知识点: 1. **液体压强的存在**:通过演示实验,如橡皮膜在水中...

    系统资源获取(cpu-mem)和游戏

    总结来说,系统资源获取和游戏开发紧密相关,通过C++和其他跨平台工具,我们可以有效地监控和管理CPU、内存,提升游戏的性能和用户体验。理解这些技术,并能灵活运用到实际项目中,对于任何IT专业人员,特别是游戏...

    获取dll,exe 中的资源图片源代码

    总结起来,这个代码集合提供了一种方法,从`.dll`和`.exe`文件中提取图片资源,并将它们转换和保存为`.ico`和`.bmp`格式。通过理解Windows API以及提供的源代码,开发者可以学习如何与二进制资源交互,这对于开发...

    简约蓝色人力资源工作总结PPT模版x_人力资源工作总结PPT

    招聘工作强调与高校建立长期合作,储备人才,并通过多种方式如校园招聘、政府协助和员工内部推荐来获取新的人力资源。人事管理工作涵盖了提供人力数据、健康证年检、职称申报、合同签订、员工档案管理和专业技术资格...

    pe文件解析:读取pe信息获取文件资源(源码)

    总结来说,这个源码提供了解析PE文件以获取其资源信息的方法,这对于软件开发、安全分析、逆向工程等多个领域都具有实用价值。通过深入理解PE文件结构和解析过程,我们可以更好地理解和操纵Windows程序。

    C#资源文件操作的总结

    这篇文章主要总结了如何操作C#中的资源文件,包括读取和写入资源文件的方法。 1. **获取资源文件** 获取资源文件通常涉及加载程序集并访问其中的资源。C#中的`System.Reflection.Assembly`类提供了获取当前执行...

    总结一下java获取路径几种途径

    本篇总结将从多个角度介绍Java中获取路径的方法。 ### 1. 获取系统属性路径 Java提供了一种通过系统属性获取路径的方式,这种方式简单且在多数环境下都能工作。 ```java // 获取用户目录路径 String userHome = ...

    资源管理获取不到win7资源处理方法

    总结,解决"资源管理获取不到win7资源"的问题,关键在于检查和配置服务、安全策略、共享设置、网络连接以及凭证管理。根据上述步骤逐个排查,通常可以解决访问权限问题。在进行操作时,请确保对系统的安全性有充分...

    基于WebVPN系统的数字资源获取安全机制研究.pdf

    "基于WebVPN系统的数字资源获取安全机制研究" 本研究论文旨在解决基于WebVPN系统的数字资源获取中的安全机制问题。随着新冠疫情的爆发,远程学习和办公的人数大幅增加,对移动办公、远程接入企业或学校内部网络的...

    获取图片资源反编译使用的工具

    总结来说,"获取图片资源反编译使用的工具"这一主题主要涵盖了Android应用的资源反编译技术,尤其是Apktool和AAPT这两个关键工具的使用,它们可以帮助我们便捷地访问和操作APK中的非代码资源,为Android开发和分析...

    获取CPU温度(总结)

    4. 资源包中包括:Win32_TemperatureProbe class, WinIO,Intel用户手册,Io.dll,Ring0(获取Ring0权限),Core Temp工具,Coretemp.c(Linux内核包中的代码)以及自己写的自测程序CPUTemperature

    从DLL中提取资源

    - 对于字符串资源,可以通过枚举资源类型为`RT_STRING`的方式获取资源ID。 - 使用`FindResource()`、`LoadResource()`和`LockResource()`等函数获取字符串资源的实际内容。 - 由于Value列通常是字符串资源的附加...

    Android 获取图片资源的4种方式

    ### Android 获取图片资源的四种方式 在Android应用开发过程中,图片资源是非常常见且重要的组成部分。合理地管理和加载图片资源不仅可以提升应用性能,还能优化用户体验。本文将详细介绍Android中获取图片资源的四...

    人力资源实习总结.docx

    人力资源管理是企业管理的关键组成部分,它涉及到企业内部人才的获取、发展、激励和优化配置。在知识经济时代,人力资源被视为企业的第一资源,因为人才是推动科技进步和经济发展的核心力量。通过有效的人力资源管理...

    网络环境下信息化教学资源获取与处理的研究.docx

    ### 网络环境下信息化教学资源获取与处理的研究 #### 一、研究背景与意义 在当前信息时代背景下,《国家中长期教育改革和发展规划纲要(2010-2020年)》强调了加强优质教育资源开发与应用的重要性,并提出了引入...

Global site tag (gtag.js) - Google Analytics