转贴处 http://www.blogjava.net/improviser/archive/2007/09/24/147777.html
本文内容演示属性文件用法的简单例子。
首先定义模型接口Model,视图接口View,以及它们实现类ImpModel,ImpView.
Model中定义方法getString();View中定义Model实例为其属性,在实现类ImpView中实现方法
disPlay(),其方法体为Model实例的getString()方法,并将其打印出来。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->定义属性文件
msf.properties
disPalyer.class=ImpView
provider.class=ImpModel
编写工厂类
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->TestFactory.java
importjava.util.Properties;
publicclassTestFactory{
privatestaticTestFactoryinstance=null;
privatePropertiesprops=null;
privateViewdisPalyer=null;
privateModelprovider=null;
static{
instance=newTestFactory();
}
publicstaticTestFactorygetInstance(){
returninstance;
}
publicViewgetView(){
returndisPalyer;
}
publicModelgetModel(){
returnprovider;
}
privateTestFactory(){
props=newProperties();
try{
//加载属性文件
props.load(TestFactory.class.getResource("msf.properties").openStream());
//获取属性值
StringrendererClass=props.getProperty("renderer.class");
StringproviderClass=props.getProperty("provider.class");
//产生类实例对象
renderer=(View)Class.forName(rendererClass).newInstance();
provider=(Model)Class.forName(providerClass).newInstance();
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
最后编写测试方法
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1publicstaticvoidmain(String[]args){
2Viewmr=TestFactory.getInstance().getView();
3Modelmp=TestFactory.getInstance().getModel();
4mr.setModel(mp);
5mr.disPlay();
6}
综上,对属性文件的加载主要语句
props.load( TestFactory.class.getResource("msf.properties").openStream());
并分别通过newInstance()产生实例对象,本例中使用了设计模式中的工厂模式以及单例实例模式,
因此具有对设计模式进一步了解的意义。
注:另一用法
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1publicstaticvoidmain(String[]args)throwsException{
2
3//getthebeanfactory
4BeanFactoryfactory=getBeanFactory();
5
6Viewmr=(View)factory.getBean("view");
7mr.render();
8}
9
10privatestaticBeanFactorygetBeanFactory()throwsException{
11//getthebeanfactory
12DefaultListableBeanFactoryfactory=newDefaultListableBeanFactory();
13
14//createadefinitionreader
15PropertiesBeanDefinitionReaderrdr=newPropertiesBeanDefinitionReader(
16factory);
17
18//loadtheconfigurationoptions
19Propertiesprops=newProperties();
20props.load(TestFactory.class.getResource("msf.properties").openStream());
21
22rdr.registerBeanDefinitions(props);
23
24returnfactory;
25}
分享到:
相关推荐
SPRING 笔记SPRING 笔记SPRING 笔记
spring笔记spring笔记spring笔记spring笔记spring笔记spring笔记
达内,tarena,spring笔记,springPPT课件,达内spring笔记 spring的全套资料
spring入门笔记
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
狂神springcloud笔记+源码+config 狂神springcloud笔记+源码+config 狂神springcloud笔记+源码+config 狂神springcloud笔记+源码+config 狂神springcloud笔记+源码+config 狂神springcloud笔记+源码+...
Spring笔记 Spring笔记 Spring笔记 Spring笔记 Spring笔记
spring笔记 狂神说
spring笔记.pdf
Spring笔记示例源代码
尚硅谷Spring笔记
尚硅谷Spring6的笔记
Spring学习笔记,Spring就是一个工厂,可以将所有对象创建和依赖关系维护,交给spring管理
Spring学习笔记( spring视频笔记)
spring 初学 笔记 入门提示
spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记
网上获取的简单关于spring的一些学习笔记, 包括 spring, springMVC, spring cloud, springBoot 和一些其他相关的笔记, 有需要的可以看看
韩顺平Spring笔记之ssh整合.doc
我在学校时整理的笔记,从不懂时到懂,因为时间紧,要找工作,所以整理不好的请谅解,如果需要一些其它资料的,可以找我,这是我的邮箱zhj915946763@163.com,我有java基础的,spring,hibernate,Struts2,svn,xml,...