XI. spring 의 작은 방울 -- IObject Factory PostProcessor (공장 후 프로세서)

5729 단어 process
윗글 을 이어받다
IObject Factory PostProcessor (공장 후 프로세서)
전 제 는 인터페이스의 대상 을 현재 용기 에 등록 하 는 것 이다.
  • 직접 계승 대상 은 이 post ProcessBean Factory 방법 을 호출 하고 매개 변 수 는 공장
  • 이다.
  • 추가 대상 을 xml 에 설정 하고 IApplicationContext 로 자동 등록
  • 인터페이스 이름 은 각각. net 의 Spring. Objects. Factory. Config. IObjectFactory PostProcessor 와 자바 의 org. springframework. beans. factory. config. BeanFactory PostProcessor 이다.
    postprocessBeanFactory 는 하나의 방법 으로 파 라 메 터 는 공장 을 만 드 는 대상 이 고 방법의 역할 은 대상 이 용기 에 불 러 온 후에 실례 화 되 기 전에 어떤 행 위 를 수행 할 수 있 습 니 다.
  • spring 이 제공 하 는 실현 류 (두 인터페이스의 실현 류 의 유일한 차이 점 은 자리 표시 자 하 나 는 인 스 턴 스 를 직접 사용 한 대상 의 속성 명)
  • Property Placeholder Configurer, 그 중에서 기본 적 인 용법 은 다음 과 같 습 니 다. 기본 값 은 변수 가 대응 하 는 값 이 존재 하지 않 을 때 시스템 의 환경 변 수 를 가 져 옵 니 다.
    C \ #: 이 종류의 인 자 는 키 쌍 이 존재 합 니 다. configSections 속성 은 그 노드 를 가 져 올 키 쌍 으로 설정 하 였 습 니 다. Environment VariableMode 는 매 거 진 것 으로 세 가지 사용 가능 한 값 이 있 습 니 다. Never, Fallback, Override.그 중에서 Fallback 은 기본 값 입 니 다. 사용자 정의 키 쌍 에서 일치 하 는 항목 을 찾 을 수 없 는 자리 표시 자 를 환경 변수 로 교체 해 보십시오.Override 는 사용자 정의 키 쌍 에 자리 표시 자 와 일치 하 는 키 가 있 는 지 신경 쓰 지 않 고 환경 변수 값 으로 자리 표시 자 를 직접 교체 합 니 다.Nerver 는 환경 변 수 를 사용 하지 않 고 교체 합 니 다.
    <configuration>
    
    <configSections>
    
    <sectionGroup name="spring">
    
    <section name="context" 
    
      type="Spring.Context.Support.ContextHandler, Spring.Core"/>
    
    </sectionGroup>
    
    <section name="DaoConfiguration" 
    
      type="System.Configuration.NameValueSectionHandler"/>
    
    <section name="DatabaseConfiguration" 
    
      type="System.Configuration.NameValueSectionHandler"/>
    
    </configSections>
    
    <DaoConfiguration>
    
    <add key="maxResults" value="1000"/>
    
    </DaoConfiguration>  
    
    <DatabaseConfiguration>
    
    <add key="connection.string" 
    
      value="dsn=MyDSN;uid=sa;pwd=myPassword;"/>
    
    </DatabaseConfiguration>  
    
    <spring>
    
    <context>
    
    <resource uri="config://spring/objects"/>
    
    </context>
    
    <objects>  
    
     <object type="SpringBase.test,SpringBase">
    
       <property name="result" value="${maxResults}"/>
    
       <property name="connectionstring" value="${connection.string}"/> 
    
    </object> 
    
     <object 
    
          type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer,
    
          Spring.Core">
    
      <property name="configSections">          
    
        <value>DaoConfiguration,DatabaseConfiguration</value>                              
    
      </property>   
    
    </object>
    
    </objects>
    
    </spring>
    
    </configuration>

    java: 그 중에서 classpath 접 두 사 는 클래스 파일 주소 에서 시작 하 는 것 을 표시 합 니 다. searchSystem Environment 에서 검색 시스템 환경 변 수 를 불 형식 으로 설정 할 지 여부 입 니 다.
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    
    <property name="locations"> 
    
    <list>                
    
      <value>classpath:config.properties</value> 
    
    </list>    
    
    </property> 
    
    </bean> 
    
    <bean class="springdemo.test" singleton="false">
    
      <property name="name" value="${jdbc}" />
    
      <property name="url" value="${jdbc.url}" />
    
    </bean>

    config.properties
    jdbc=aaa
    
    jdbc.url=aaa

  • Property OverrideConfigurer (앞의 차이 점 과 교체 하 는 근 거 는 자리 차지 문자 가 아니 라 속성 명)
    C \ #: 그 중의 key 를 대상 으로 하 는 속성 명
    <configuration>
    
    <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="test.result" value="1000"/>
    
    </DaoConfigurationOverride> 
    
    <spring>
    
    <context>
    
    <resource uri="config://spring/objects"/>
    
    </context>
    
    <objects>  
    
     <object id="test" type="SpringBase.test,SpringBase">
    
       <property name="result" value="11"/>
    
    </object> 
    
     <object 
    
          type="Spring.Objects.Factory.Config.PropertyOverrideConfigurer,
    
          Spring.Core">
    
      <property name="configSections">          
    
        <value>DaoConfigurationOverride</value>                              
    
      </property>   
    
    </object>
    
    </objects>
    
    </spring>
    
    </configuration>

    java:
    <bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer"> 
    
    <property name="locations"> 
    
    <list>                
    
      <value>classpath:config.properties</value> 
    
    </list>    
    
    </property> 
    
    </bean> 
    
    <bean id="jdbc" class="springdemo.test" singleton="false">
    
    <property name="url" value="123" />
    
    </bean>

    config.properties
    jdbc.url=aaa


  • 전편: X. spring 의 작은 방울 -- IObject PostProcessor (대상 후 프로세서)
  • 본 고의 링크 주소: XI. spring 의 작은 방울 -- IObject Factory PostProcessor (공장 후 프로세서)
  • 좋은 웹페이지 즐겨찾기