Servicemix配置文件的配置

配置com.ff.cfg文件
将该文件放入ect文件中,其中com.ff为servicemix中persistent-id
com.ff.cfg中的内容如下:

imServerName = com.test 

ServiceMix对配置文件的操作如下

config:edit persistent-id  //进入persistent-id.cfg的配置文件
config:property-set  //key 值
config:property update //将该key 、值进行修改(修改后,它自动退出persistent-id.cfg的文件,对于后续操作该文件时,需要重新进入该配置文件内)
config:property-list //查看persistent-id中的内容

pom.xml中需要引入如下的包

<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>6.0.0</version>
</dependency>

Spring中所用到的包

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.17.RELEASE</version>
</dependency>

Blueprint 中所用到的包

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>blueprint-maven-plugin-annotation</artifactId>
<version>1.1.0</version>
<optional>true</optional>
</dependency>
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-all</artifactId>
    <version>2.4.10</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.cdi</groupId>
<artifactId>pax-cdi-api</artifactId>
<version>1.0.0.RC2</version>
<optional>true</optional>
</dependency>

Spring容器读取配置信息
1.1 在Spring.xml中的头部需要添加如下信息

mlns:osgix="http://www.springframework.org/schema/osgi-compendium"
 xsi:schemaLocation= http://www.springframework.org/schema/osgi-compendium
http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd
1.2 Spring.xml中配置信息如下

(1) 第一种配置,修改配置文件后,需要重启bundle,才可以修改项目中的配置值

<bean id="ossConfig" class="com.yf.af.config.OssConfig" init-method="refresh">
    <property name="imServerName" value="${task-imServerName}"/>
</bean>
<osgix:cm-properties id="preProps" persistent-id="com.yf.af" >
     <prop key="task-imServerName">default value</prop>
</osgix:cm-properties>
<context:property-placeholder properties-ref="preProps"/>

(2)第二种配置,修改配置文件后,自动修改配置内容

<bean id="ossConfig" class="com.yf.af.config.OssConfig" init-method="refresh">
<osgix:managed-properties persistent-id="com.yf.af" update-strategy="container-managed"/>

该值设默认属性值,可以不写

<property name="tokenExpireTime" value="100"/> 
</bean>
<bean id="testConfig" class="com.yf.af.config.TestConfig" init-method="test">
<property name="ossConfig" ref="ossConfig"/>
</bean>

(3)第三种配置,修改配置文件后,手动修改配置内容(其在项目代码中进入手动获得进行修改)

bean id="ossConfig" class="com.yf.af.config.OssConfig" init-method="refresh">
<osgix:managed-properties persistent-id="com.yf.af" update-strategy="bean-managed" update-method="updateCallback"/>

   <property name="tokenExpireTime" value="100"/> 
</bean>

<bean id="testConfig" class="com.yf.af.config.TestConfig" init-method="test">
<property name="ossConfig" ref="ossConfig"/>
</bean>

(注 (2)、(3)中方法中需要将实体类中的属性值的名字现配置文件中的key的名字保持相同,可查看http://docs.spring.io/osgi/docs/1.2.0-m2/reference/html/compendium.html

  1. 实体类接收配置信息
Public class TestConfig{
    Private String imServerName;

    public String getImServerName() {
         return imServerName;
    }
    public void setImServerName(String imServerName) {
       this.imServerName = imServerName;
     }
}
  1. Blueprint容器读取配置信息
    使用注解的形式配置,该为实体类中的代码,其为groovy的代码风格
@Config(pid = "com.yf.af", updatePolicy = "reload", 
defaults = [ @DefaultProperty(key = "task-imServerName", value =  "default imServerName") ]) 

@Named 
@Singleton
class AppConfig {     /* 注入配置属性。注意使用''符号禁止 占位符解析 groovy Placeholder resolved*/   

@ConfigProperty('${task-imServerName}')  
String imServerName
@PostConstruct     
   void refresh() {      
      println("Configuration updated  (imServerName = " +  imServerName + ")")
   }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值