Servicemix配置文件的配置

来源:互联网 发布:苹果mac 怎样更新系统 编辑:程序博客网 时间:2024/06/06 07:02

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

imServerName = com.test 
  • 1
  • 1

ServiceMix对配置文件的操作如下

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

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

spring中所用到的包

<dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>3.2.17.RELEASE</version></dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

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

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

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

<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"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(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"/>
  • 1
  • 2
  • 1
  • 2

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

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

(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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(注 (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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. Blueprint容器读取配置信息 
    使用注解的形式配置,该为实体类中的代码,其为groovg的代码风格
@Config(pid = "com.yf.af", updatePolicy = "reload", defaults = [ @DefaultProperty(key = "task-imServerName", value =  "default imServerName") ]) @Named @Singletonclass AppConfig {     /* 注入配置属性。注意使用''符号禁止 占位符解析 groovy Placeholder resolved*/   @ConfigProperty('${task-imServerName}')  String imServerName@PostConstruct        void refresh() {            println("Configuration updated  (imServerName = " +  imServerName + ")")   }}
原创粉丝点击