2009-10-09 2 views
4

의 context.xml에 자리 표시자를 사용하여 '/META-INF/context.xml'는이에 구현하는 것이 가능이 가능 내가 봄 스트럿을 사용하고

<Context cachingAllowed="false" useHttpOnly="true"> 
<Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource" 
      factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
      maxActive="100" maxIdle="30" maxWait="10000" 
      username="xxxxx" password="xxxxx" 
      driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
      url="jdbc:sqlserver://xxx:1433;databaseName=xxx;"/> 
</Context> 

에 다음 항목이 있어야하는 것입니다 방법에 따라

<Context cachingAllowed="false" useHttpOnly="true"> 
    <Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource" 
       factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
       maxActive="100" maxIdle="30" maxWait="10000" 
       username="${jdbc.username}" password="${jdbc.pwd}" 
       driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
       url="${jdbc.url}"/> 
</Context> 

내 applicationContext.xml는 다음,

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:comp/env/jdbc/xxx" /> 
</bean> 

내가 값을 선택하려면를 가지고있다 속성 파일에서 jdbc.username 및 jdbc.pwd

답변

1

스프링의 PlaceholderPropertyConfigurer (스프링 컨텍스트 내부의 값만 바꿉니다)를 사용할 수 없습니다.

그러나 Replace 작업을 사용하여 빌드 프로세스 중에 Ant을 사용할 수 있습니다. 예 :

<replace file="META-INF/context.xml" replacefilterfile="my.properties" /> 

위의 내용은 속성 이름을 대체 할 토큰으로 사용합니다. context.xml에서 "$ {jdbc.url}"이 아닌 "jdbc.url"을 사용해야합니다. 후자가 절대적으로 필요한 경우 중첩 된 <replacefilter> 요소로 대체 ​​될 토큰을 명시 적으로 명명하여이를 수행 할 수 있습니다.

+0

답변을 주셔서 감사합니다. ChssPly76이 문제를 해결하려고합니다. – SyAu

1

Tomcat의 경우 서버의 server.xml 파일에 사용자 이름/암호가 war 파일 외부에있는 방식으로 연결 풀을 설정할 수 있습니다. Tomcat 5.5에서 Context 요소가 어떻게 작동하는지에 대한 정보는 다음과 같습니다. http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

또는 DBCP 패키지를 Spring 구성 파일의 Apache에서 사용하고 jdbc.properties를 사용하여 사용자 이름/비밀번호를 바꿀 수 있습니다. 예 :

<context:property-placeholder location="jdbc.properties"/> 
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName"> 
    <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value> 
    </property> 
    <property name="url"> 
    <value>${jdbc.url}</value> 
    </property> 
    <property name="username"> 
    <value>${jdbc.username}</value> 
    </property> 
    <property name="password"> 
    <value>${jdbc.password}</value> 
    </property> 
    <property name="initialSize"> 
    <value>30</value> 
    </property> 
    <property name="maxActive"> 
    <value>100</value> 
    </property> 
    <property name="maxWait"> 
    <value>10000</value> 
    </property> 
</bean> 
관련 문제