`
jiqimiao
  • 浏览: 63187 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

Spring笔记之三(Usage of property config)

 
阅读更多

转贴处 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}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics