Spring笔记之三(Usage of property config)

转载 2007年09月25日 14:45:00

转贴处 http://www.blogjava.net/improviser/archive/2007/09/24/147777.html

本文内容演示属性文件用法的简单例子。
首先定义模型接口Model,视图接口View,以及它们实现类ImpModel,ImpView.
Model中定义方法getString();View中定义Model实例为其属性,在实现类ImpView中实现方法
disPlay(),其方法体为Model实例的getString()方法,并将其打印出来。

定义属性文件
msf.properties
disPalyer.class
=ImpView
provider.class
=ImpModel


编写工厂类
TestFactory.java
import java.util.Properties;
public class TestFactory{
    
private static TestFactory instance = null;
    
private Properties props = null;
    
private View disPalyer = null;
    
private Model provider = null;

    
static {
        instance 
= new TestFactory();
    }

    
public static TestFactory getInstance() {
        
return instance;
    }

    
public View getView() {
        
return disPalyer;
    }

    
public Model getModel() {
        
return provider;
    }

    
private TestFactory() {
        props 
= new Properties();

        
try {
            
//加载属性文件
            props.load( TestFactory.class.getResource("msf.properties").openStream()); 

            
//获取属性值
            String rendererClass = props.getProperty("renderer.class");
            String providerClass 
= props.getProperty("provider.class");

            
//产生类实例对象
            renderer = (View) Class.forName(rendererClass).newInstance();
            provider 
= (Model) Class.forName(providerClass).newInstance();
        } 
catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}


最后编写测试方法
1  public static void main(String[] args) {
2             View mr = TestFactory.getInstance().getView();
3             Model mp = TestFactory.getInstance().getModel();
4             mr.setModel(mp);
5             mr.disPlay();
6         }

综上,对属性文件的加载主要语句
props.load( TestFactory.class.getResource("msf.properties").openStream());
并分别通过newInstance()产生实例对象,本例中使用了设计模式中的工厂模式以及单例实例模式,
因此具有对设计模式进一步了解的意义。

注:另一用法
 1 public static void main(String[] args) throws Exception {
 2 
 3         // get the bean factory
 4         BeanFactory factory = getBeanFactory();
 5 
 6         View mr = (View) factory.getBean("view");
 7         mr.render();
 8     }
 9 
10     private static BeanFactory getBeanFactory() throws Exception {
11         // get the bean factory
12         DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
13 
14         // create a definition reader
15         PropertiesBeanDefinitionReader rdr = new PropertiesBeanDefinitionReader(
16                 factory);
17 
18         // load the configuration options
19         Properties props = new Properties();
20         props.load(TestFactory.class.getResource("msf.properties").openStream());
21 
22         rdr.registerBeanDefinitions(props);
23 
24         return factory;
25     }


 

相关文章推荐

基于annotation注解的Spring3 MVC Page Redirection Example之三页面重定向学习笔记

com.jiangge.common.controller.WebController package com.jiangge.common.controller; import org.sprin...

异常笔记(1)--Duplicate property mapping of organizationLeader found in edu.ur.ir.item.Organization

三月 01, 2017 3:30:13 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending ...

Android动画之三:Property Animation 完全解析 (上)

来完成这个Android动画系列,之前写了View Animation和Drawable Animation,接下来讲解三种动画中的最后一种,Property Animation,这也是Androi...

Spring+MyBatis 企业应用实战读书笔记之三 Spring MVC的常用注解(一)

从spring 2.5开始引入注解。 3.1 @Controller 注解 @Controller注解的类不需要继承特定的父类或者实现特定的接口,相对之前的Controller接口版本更加简单。而且C...

java学习笔记JDK6课件之三

  • 2008年07月01日 14:07
  • 452KB
  • 下载

Spring笔记之三:Spring Ioc实例演示(完整代码)

案例步骤: 1、创建斧头(axe)、人类(person)接口;斧头包含劈的功能(chop),人类包含用斧头的功能(useaxe) -----------------------------------...

三、Failed to convert property value of type [org.apache.commons.dbcp.BasicDataSource] to required

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdbcUserDao'...
  • badyflf
  • badyflf
  • 2012年10月20日 16:44
  • 2720

spring-Acgei的一个小例子之三

  • 2011年04月19日 16:56
  • 40KB
  • 下载

Spring cloud笔记 - config 外部配置

Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器映射的概念与Spring ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring笔记之三(Usage of property config)
举报原因:
原因补充:

(最多只允许输入30个字)