Spring.net 容器注入是替换(后处理器appConfigPropertyHolder)

1.定义节点
下面两个都定义为键值对
<section name="DaoConfiguration" type="System.Configuration.NameValueSectionHandler"/>
<section name="DatabaseConfiguration" type="System.Configuration.NameValueSectionHandler"/>

 <DaoConfiguration>
The IoC container
Spring Framework (Version 1.3.2) 68
 <add key="maxResults" value="1000"/>
 </DaoConfiguration>

 <DatabaseConfiguration>
 <add key="connection.string" value="dsn=MyDSN;uid=sa;pwd=myPassword;"/>
 </DatabaseConfiguration>

2.应用替换
<objects xmlns="http://www.springframework.net"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.net
 http://www.springframework.net/xsd/spring-objects.xsd" >

 <object name="productDao" type="DaoApp.SimpleProductDao, DaoApp ">
 <property name="maxResults" value="${maxResults}"/>
 <property name="dbConnection" ref="myConnection"/>
 </object>

 <object name="myConnection" type="System.Data.Odbc.OdbcConnection, System.Data">
 <property name="connectionstring" value="${connection.string}"/>
 </object>
<!--用于spring容器的注时替换,后处理器-->
 <object name="appConfigPropertyHolder"
 type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
 <property name="configSections">
 <value>DaoConfiguration,DatabaseConfiguration</value>
 </property>

 </object>
</objects>
 第二种方法,spring环境变量模式
<object name="appConfigPropertyHolder"
 type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
 <property name="configSections" value="DaoConfiguration,DatabaseConfiguration"/>
 <property name="EnvironmentVariableMode" value="Override"/>
 </object>
</objects>
<configuration>
The IoC container
Spring Framework (Version 1.3.2) 70
 <configSections>
 <sectionGroup name="spring">
 <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
 </sectionGroup>
 <section name="DaoConfigurationOverride" type="System.Configuration.NameValueSectionHandler"/>
 </configSections>
 <DaoConfigurationOverride>
 <add key="productDao.maxResults" value="1000"/>
 </DaoConfigurationOverride>

 <spring>
 <context>
 <resource uri="assembly://DaoApp/DaoApp/objects.xml"/>
 </context>
 </spring>
</configuration>
之后也只差应用了
<objects xmlns="http://www.springframework.net"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/springobjects.xsd"
>
 <object name="productDao" type="PropPlayApp.SimpleProductDao, PropPlayApp " >
 <property name="maxResults" value="2000"/>
 <property name="dbConnection" ref="myConnection"/>
 <property name="log" ref="daoLog"/>
 </object>

 <object name="daoLog" type="Spring.Objects.Factory.Config.LogFactoryObject, Spring.Core">
 <property name="logName" value="DAOLogger"/>
 </object>

 <object name="myConnection" type="System.Data.Odbc.OdbcConnection, System.Data">
 <property name="connectionstring">
 <value>dsn=MyDSN;uid=sa;pwd=myPassword;</value>
 </property>
 </object>
 <object name="appConfigPropertyOverride" type="Spring.Objects.Factory.Config.PropertyOverrideConfigurer,
 Spring.Core">
 <property name="configSections">
 <value>DaoConfigurationOverride</value>
 </property>
 </object>
</objects>

 

posted on 2016-09-29 17:02  听哥哥的话  阅读(281)  评论(0编辑  收藏  举报

导航