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     }


 

总结Spring Set注入方式及对property标签的理解

Spring依赖注入主要的方式:1.Set方法注入;2.
  • yuexuanyu
  • yuexuanyu
  • 2014年04月25日 14:56
  • 7871

Redis 初步配置及配置文件

redis简易配置+配置文件+命令
  • firice_1379
  • firice_1379
  • 2015年02月26日 15:46
  • 536

史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

简介在分布式系统中,spring cloud config 提供一个服务端和客户端去提供可扩展的配置服务。我们可用用配置服务中心区集中的管理所有的服务的各种环境配置文件。配置服务中心采用git的方式存...
  • forezp
  • forezp
  • 2017年04月10日 21:18
  • 185047

Spring property文件配置方法以及如何与工程分离

1,Spring使用property文件作为配置源    工程中难免出现一些需要每次部署都需要配置的参数,如数据源连接参数等,测试环境跟实际运行环境是不一样的。    使用spring框架的话,这...
  • kolabb
  • kolabb
  • 2015年08月10日 17:15
  • 1000

spring 通过property标签给对象添加属性入门

User.java package cn.itcast.c_property; public class User { private int id; private String name...
  • Tomsheng321
  • Tomsheng321
  • 2017年02月02日 12:08
  • 1599

spring配置文件详解--真的蛮详细

转自: http://book.51cto.com/art/201004/193743.htm Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分...
  • u012049463
  • u012049463
  • 2013年09月18日 14:50
  • 5304

springcloud-config组件的配置和使用

目前项目中用到的配置切换方式,是使用maven定义profile进行的,配置的修改需要重新打包,线上的节点一多,打包和部署就是一项大工程。    流行点的配置管理平台有百度的disconf ,淘宝的d...
  • Yoara
  • Yoara
  • 2017年02月21日 17:12
  • 2467

Spring任务调度

需求一:没秒执行一次某个类中方法
  • thc1987
  • thc1987
  • 2014年08月28日 10:17
  • 2568

使用Spring Cloud Config搭建配置中心

笔者的微服务项目中需要使用一个统一的管理分布式系统的配置中心,之前试用过Disconf。同时笔者也在留意是否有其它的可选方案。最近接触到Spring Cloud Config,认为也是一个搭建配置中心...
  • gongxsh00
  • gongxsh00
  • 2016年05月01日 22:53
  • 40758

spring cloud config分布式配置中心的高可用

在前面的博客中,我们实现了配置文件统一管理的功能,但是我们可以发现,我们仅仅只用了一个server,如果当这个server挂掉的话,整个配置中心就会不可用,下面,我们就来解决配置中心的高可用问题。 下...
  • liuchuanhong1
  • liuchuanhong1
  • 2017年03月06日 09:13
  • 3905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring笔记之三(Usage of property config)
举报原因:
原因补充:

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