Spring SpelとPlaceholder

5941 ワード

最近忙しくて会社のシステムのJavaバージョンがアップグレードして、blogの書くのは以前ほどまめではありません.今日はSpringプロファイルの変数についてお話しします.スプリングを使ったことがある人はPlaceholderがどうなっているのか、beanのPropertyを読み取るために使われていると信じています.例:

 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        <property name="locations">
            <list>
                <value>classpath:jdbc.propertiesvalue>
            list>
        property>
    bean> 
    <bean id="dbcpDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        
        <property name="driverClassName" value="${project.jdbc.driverClassName}" />
        <property name="url" value="${project.jdbc.url}" />
        <property name="username" value="${project.jdbc.username}" />
        <property name="password" value="${project.jdbc.password}" />

スプリング3に導入されたSPELは、より強力に使用され、より複雑な計算が可能です.jndi url resourceでフォルダ内のプロファイル(Propertiesまたはlog 4 jファイル)を読み込むのが一般的です.例:
<jee:jndi-lookup id="configUrlResource"
   jndi-name="java:comp/env/CONFIG_URL"
   expected-type="java.net.URL" />
<bean id="configUrl" class="org.springframework.core.io">
    <property name="url" ref="configUrlResource" />
bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    <property name="locations">  
       <list>  
           
          <value>#{configUrl + '/ldap.properties'}value>
                    <value>#{configUrl + '/config.properties'}value>
        list>  
    property>  
bean>

#{configUrl.URI.toExternalForm()}

spelの機能は非常に強力で、参考にすることができます:https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html