- 浏览: 221039 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Wangwei86609:
非常好的规则引擎框架,支持决策树和多线程运行规则https:/ ...
规则引擎 -
hzxlb910:
真详细,收藏哈
maven setting.xml配置说明 -
东方胜:
[b][/b]
脚本语言 Tcl -
345161974:
hyw520110 写道345161974 写道这个Visua ...
Visual Tcl Binary 完整版(完美中文支持) -
hyw520110:
345161974 写道这个Visual Tcl Binary ...
Visual Tcl Binary 完整版(完美中文支持)
2.
编写类文件
·
下面开始创建一个新类:BeanFile
;包名:
javamxj.spring.beanfile
BeanFile.java |
package
javamxj
.
spring
.
beanfile
;
public class BeanFile { private String beanFile = "多种方式加载Bean的配置文件" ; public void setBeanFile(String beanFile) { this .beanFile = beanFile; } public String getBeanFile() { return beanFile; } } |
·
新建Test.java,测试一下。
Test.java
package
javamxj
.
spring
.
beanfile
;
import java . io . FileInputStream ;
import java . io . FileNotFoundException ;
import java . io . InputStream ;
import org . springframework . beans . factory . BeanFactory ;
import org . springframework . beans . factory . support . BeanDefinitionRegistry ;
import org . springframework . beans . factory . support . DefaultListableBeanFactory ;
import org . springframework . beans . factory . support . PropertiesBeanDefinitionReader ;
import org . springframework . beans . factory . xml . XmlBeanFactory ;
import org . springframework . context . ApplicationContext ;
import org . springframework . context . support . ClassPathXmlApplicationContext ;
import org . springframework . core . io . ClassPathResource ;
import org . springframework . core . io . FileSystemResource ;
import org . springframework . core . io . InputStreamResource ;
import org . springframework . core . io . Resource ;
public class Test {
public static void main(String [] args) {
// 直接调用HelloBean
BeanFile bf = new BeanFile();
System .out.println(bf.getBeanFile());
InputStream is = null ;
try {
is = new FileInputStream ("bean1.xml" );
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Resource resource = new InputStreamResource(is);
sayHello(resource);
resource = new ClassPathResource("bean2.xml" );
sayHello(resource);
resource = new FileSystemResource("bean3.xml" );
sayHello(resource);
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(
reg);
reader.loadBeanDefinitions(new ClassPathResource("bean.properties" ));
BeanFactory factory = (BeanFactory) reg;
bf = (BeanFile) factory.getBean("beanFile" );
System .out.println("利用 " + bf.getBeanFile() + " 加载 Bean.properties" );
ApplicationContext appContext = new ClassPathXmlApplicationContext(
"bean4.xml" );
bf = (BeanFile) appContext.getBean("beanFile" );
System .out.println("利用 " + bf.getBeanFile() + " 加载 Bean.xml" );
}
public static void sayHello(Resource resource) {
BeanFactory factory = new XmlBeanFactory(resource);
BeanFile bf = (BeanFile) factory.getBean("beanFile" );
System .out.println("利用 " + bf.getBeanFile() + " 加载 Bean.xml" );
}
}
import java . io . FileInputStream ;
import java . io . FileNotFoundException ;
import java . io . InputStream ;
import org . springframework . beans . factory . BeanFactory ;
import org . springframework . beans . factory . support . BeanDefinitionRegistry ;
import org . springframework . beans . factory . support . DefaultListableBeanFactory ;
import org . springframework . beans . factory . support . PropertiesBeanDefinitionReader ;
import org . springframework . beans . factory . xml . XmlBeanFactory ;
import org . springframework . context . ApplicationContext ;
import org . springframework . context . support . ClassPathXmlApplicationContext ;
import org . springframework . core . io . ClassPathResource ;
import org . springframework . core . io . FileSystemResource ;
import org . springframework . core . io . InputStreamResource ;
import org . springframework . core . io . Resource ;
public class Test {
public static void main(String [] args) {
// 直接调用HelloBean
BeanFile bf = new BeanFile();
System .out.println(bf.getBeanFile());
InputStream is = null ;
try {
is = new FileInputStream ("bean1.xml" );
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Resource resource = new InputStreamResource(is);
sayHello(resource);
resource = new ClassPathResource("bean2.xml" );
sayHello(resource);
resource = new FileSystemResource("bean3.xml" );
sayHello(resource);
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(
reg);
reader.loadBeanDefinitions(new ClassPathResource("bean.properties" ));
BeanFactory factory = (BeanFactory) reg;
bf = (BeanFile) factory.getBean("beanFile" );
System .out.println("利用 " + bf.getBeanFile() + " 加载 Bean.properties" );
ApplicationContext appContext = new ClassPathXmlApplicationContext(
"bean4.xml" );
bf = (BeanFile) appContext.getBean("beanFile" );
System .out.println("利用 " + bf.getBeanFile() + " 加载 Bean.xml" );
}
public static void sayHello(Resource resource) {
BeanFactory factory = new XmlBeanFactory(resource);
BeanFile bf = (BeanFile) factory.getBean("beanFile" );
System .out.println("利用 " + bf.getBeanFile() + " 加载 Bean.xml" );
}
}
3. 配置文件
由上面的Test.java可知,这里一共需要四个XML文件和一个Properties文件,现在分别建立。
·
bean1.xml放在项目根目录下:
bean1.xml |
<?
xml
version
="1.0" encoding
="GBK"
?>
<! DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd" > < beans > < bean id=" beanFile " class=" javamxj.spring.beanfile.BeanFile " > < property name=" beanFile " > < value > InputStreamResource(InputStream inputStream)</ value > </ property > </ bean > </ beans > |
bean2.xml、bean3.xml、bean4.xml与bean1.xml相似,仅仅需要替换一下<value>值即可。重要的注意文件的存放位置。
这里只给出不同的代码;
·
bean2.xml放在源文件夹(src)目录下:
bean2.xml(部分) |
<
property
name=
"
beanFile
"
>
< value > ClassPathResource(String path) </ value > </ property > |
·
bean3.xml放在项目根目录下:
bean3.xml(部分) |
<
property
name=
"
beanFile
"
>
< value > FileSystemResource(String path) </ value > </ property > |
·
bean4.xml放在源文件夹(src)目录下:
bean4.xml(部分) |
<
property
name=
"
beanFile
"
>
< value > ApplicationContext </ value > </ property > |
Spring也可以使用属性文件来定义配置文件,如下:
·
bean.properties 放在源文件夹(src)目录下:
bean.properties |
beanFile.class
=javamxj.spring.beanfile.BeanFile
beanFile.beanFile =properties |
·
还需要将上文《快速上手Spring--2.HelloWorld(2)
》中的
log4j.properties复制到src目录下。
4.
运行程序
右击Test.java,运行程序,控制台输出如下:
多种方式加载Bean的配置文件
利用 InputStreamResource(InputStream inputStream) 加载 Bean.xml
利用 ClassPathResource(String path) 加载 Bean.xml
利用 FileSystemResource(String path) 加载 Bean.xml
利用 properties 加载 Bean.properties
利用 ApplicationContext 加载 Bean.xml
利用 InputStreamResource(InputStream inputStream) 加载 Bean.xml
利用 ClassPathResource(String path) 加载 Bean.xml
利用 FileSystemResource(String path) 加载 Bean.xml
利用 properties 加载 Bean.properties
利用 ApplicationContext 加载 Bean.xml
5.
小结
这篇文章主要谈论了如何加载Spring的配置文件,一般来说,就是BeanFactory和ApplicationContext。最常使用的、简单的BeanFactory实现是
org.springframework.beans.factory.xml.XmlBeanFactory,其加载方式为:
BeanFactory factory = new
XmlBeanFactory(Resource
resource)
这里resource必须是xml格式。
Resource
包括: AbstractResource, ClassPathResource,
FileSystemResource, InputStreamResource,
ServletContextResource,
UrlResource。这篇文章
谈了常用的三种:ClassPathResource,
FileSystemResource,
InputStreamResource。
ApplicationContext包括了
BeanFactory的所有功能,也要比BeanFactory强大的多(以后会详细介绍的)。这里只简单的使用了
ClassPathXmlApplicationContext
加载了Bean配置文件。你可以将
log4j.properties中的“Warn”改为
“Debug”, 对比一下和ClassPathResource的输出,
在Eclipse中,bean2.xml、bean4xml虽然都是放在源文件夹(src)目录下,但实际上,是由已经编译好的
Test.class从类文件夹(这里是bin文件夹)中加载的。
发表评论
-
pushlet
2012-05-31 14:56 1176基于pushlet的文件监控系统的研究与实现 http ... -
@Transactional spring 配置事务
2012-04-25 11:15 2095@Transactional spring 配置事 ... -
Spring的组件自动扫描机制
2012-04-09 17:47 0Spring将所有的bean都纳入到IOC中创建、管理和维护。 ... -
struts&rest
2012-04-03 00:11 799深入浅出REST http://www.infoq. ... -
文件转码
2011-11-16 09:55 2023工程项目太多,各工程或各文件编码不统一时,可运行本工具类,把工 ... -
安装和使用SpringIDE-------II
2011-07-29 10:39 686显示图表,如图: 发表于 @ 2006 ... -
安装和使用SpringIDE
2011-07-29 10:36 1133这篇文章谈谈如何安装与使用SpringIDE。作为辅助Sp ... -
使用AJDT简化AspectJ开发
2011-07-29 10:05 1052面向方面编程(AOP)可用来解决当今的 许多 应用需求 ... -
利用Apache的CLI来处理命令行
2011-05-16 17:02 986CLI是Jakarta Commons中的一个子类。如果你仅仅 ... -
CGlib简单介绍
2011-04-28 08:37 866CGlib概述:cglib(Code Generation L ... -
Java ClassLoader
2011-04-25 18:24 1011当Java编译器编译好.class ... -
Template模式与Strategy模式
2011-04-20 16:23 687template method模式和stra ... -
Ibatis读写CLOB数据
2011-03-21 14:21 1052转载:http://www.iteye.com/topic/7 ... -
轻松构建和运行多线程的单元测试
2011-03-18 22:09 981背景 并行程序 并行程序是指控制计算机系统中两个或多个分别 ... -
Cairngorm3中文简介
2011-03-18 22:07 1029官方原文地址:http://opensource.adobe. ... -
ibator改造之返回数据库注释和数据库分页
2010-12-23 17:24 2238转载:http://www.iteye.com ... -
quatrz 任务监控管理 (2)
2010-10-28 23:28 1447在《Quartz 任务监控管理 (1)》http://www. ... -
Quartz任务监控管理 (1)
2010-10-28 23:27 1315转载:http://sundoctor.iteye.com/b ... -
Quartz 在 Spring 中如何动态配置时间
2010-10-28 23:25 1704转载: http://sundoctor.iteye.com ... -
使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
2010-10-28 21:09 1026使用org.apache.commons.net.ftp包开发 ...
相关推荐
【描述】:在使用Eclipse集成开发环境进行Spring应用开发时,安装Spring IDE插件是必不可少的步骤。Eclipse 3.5和3.6版本对插件的支持有所不同,但基本的安装流程是一致的。本文将详细指导如何在这些版本的Eclipse中...
在安装 Spring IDE 插件时,用户通常会下载最新的版本以获得最新的特性和改进。这可以通过 Eclipse 的“软件更新”功能或直接下载插件安装包(如 `spring-ide` 文件)来实现。安装完成后,开发者就可以在 Eclipse 中...
`freemarker-ide-0.9.14` 插件的使用有助于提升开发团队的生产力,减少因模板语法错误导致的问题,从而更快地迭代和部署项目。 总的来说,`freemarker-ide-0.9.14` 是一个面向MyEclipse用户的强大工具,旨在提供一...
6. `readme.txt` 或 `INSTALL.txt`:安装和使用指南。 7. `LICENSE` 和 `NOTICE` 文件:许可协议和版权信息。 使用Spring Tool Suite 3.9.6.RELEASE时,开发者可以享受到以下功能: - Spring Boot项目创建向导:...
Spring Boot简化了Spring应用程序的初始设置和配置,它内置了服务器、数据源、依赖管理等,使得开发者可以快速启动项目。2.0.3.RELEASE是一个重要的里程碑,因为它修复了许多已知问题,并提供了对Java和Spring框架的...
安装SpringIDE插件可以通过Eclipse的“软件更新”功能来实现,或者直接下载zip格式的插件文件,然后通过Eclipse的“安装新软件”功能导入。在描述中提到的"site.xml"文件可能包含了插件的更新站点信息,用于在...
在使用上,尽管可以通过下载Spring IDE的组件并手动安装,但利用Eclipse自带的软件更新(Software Updates)功能安装Spring IDE插件是最简便的方法。值得一提的是,Spring IDE的第二个主要版本支持的Spring框架版本...
描述中提到“spring-ide_updatesite是比较新的,还可以更新”,这意味着这个更新站点包含最新的Spring IDE插件和修复,允许用户通过Eclipse IDE来获取并安装这些更新,确保他们的开发环境始终与Spring框架的最新版本...
**springide-1.3.6**:这可能是Eclipse Spring IDE的一个特定版本号。版本号中的数字可能代表重大功能改进、bug修复或其他重要变更。安装时,用户需要确保这个版本与他们正在使用的Eclipse版本兼容,并且适合他们的...
本文将详细介绍如何在Eclipse 3.6及以上版本中安装Spring IDE。 首先,确保您已经安装了Eclipse IDE。Eclipse是一个开源的、可扩展的集成开发环境,支持多种编程语言,包括Java。如果还没有安装,可以从Eclipse官方...
标题中的"spring-tool-suite-3.9.6....使用这款工具,开发者可以享受到无缝的Spring集成,包括对Spring配置文件的智能感知,快速的项目创建,以及方便的Spring Boot和Spring Cloud支持,使开发过程更加流畅和高效。
STS是专为Spring框架开发者设计的一整套集成开发环境(IDE),它包含了对Spring项目开发的各种增强功能和便捷工具。4.13.0.RELEASE是该版本的标识,表明这是STS的第4个主要版本线中的第13个小版本更新,e4.22.0则...
标题 "jr-ide-idea.zip" 提到的是一个与 IntelliJ IDEA 集成开发环境相关的压缩包,其中包含了 JRebel 热部署插件。JRebel 是一款强大的 Java 开发工具,它允许开发者在不重启应用服务器的情况下即时看到代码变更的...
安装和使用STS时,用户需要解压这个tar.gz文件,然后按照指示运行其中的可执行文件,这将启动STS IDE。开发人员可以利用它来创建、管理和运行Spring应用,同时享受Eclipse IDE带来的强大编辑和调试能力。此外,STS还...
这些文档可能包括用户指南、API参考、开发者指南等,帮助开发者了解如何配置、使用和扩展Spring。例如,Spring MVC的文档将解释如何创建web应用程序,而AOP(面向切面编程)部分则会介绍如何实现横切关注点,如日志...
在压缩包子文件的文件名称列表中,“sts-bundle”可能是指该压缩包包含整个STS捆绑包,通常包括Eclipse IDE的基础安装,Spring相关的插件和其他必要的配置文件。 现在,让我们详细探讨Spring Tool Suite和其与Java...
- Spring Boot CLI也可以与IDE如IntelliJ IDEA和Eclipse集成,提供更丰富的开发体验。 7. **版本迭代**: 2.0.0.M5作为里程碑版本,可能包含一些新的特性和改进,但可能存在不稳定因素。正式版发布前,建议关注...
安装STS 4.7.1.RELEASE后,你会看到包含"sts-4.7.1.RELEASE"的文件夹,其中包含Eclipse的基础结构以及所有专门为Spring框架定制的插件和配置。在首次启动时,用户可以设置工作空间,导入现有的Spring项目,或者创建...
在“sts-bundle.zip”压缩包中,除了STS本身,可能还包括其他相关文件,如许可证文件、帮助文档、启动脚本等,这些都是为了确保用户能够顺利安装和使用该IDE。通过解压并运行其中的安装程序,开发者可以在自己的机器...
《IntelliJ IDEA中的Spring助手插件:Spring Assistant 1.0.4详解》 在Java后端开发领域,Spring框架的...对于任何使用IntelliJ IDEA进行Spring开发的团队和个人,都值得尝试并掌握这个插件,以提升开发体验和生产力。