6

Java-Springモジュールベースのプロジェクトがあります。DAOレイヤー用のモジュールと、DAOレイヤーに依存するビジネスレイヤー用のモジュールと、DAOレイヤーとビジネスレイヤーに依存するWebレイヤーがあります。

プロジェクトのコンパイルにMavenを使用しています。すべてのコンポーネントのjarは、Webプロジェクトのlibフォルダーの下にグループ化されています。

問題は、DAO jar内にSpringコンテキストファイルと.propertyファイルがあり、以下が私の構成ですが、Springがプロパティを読み込めないことです。プレフィックスも試しvalue="classpath:abc.propertiesましたが、機能しませんでした。

DAO jarを開くと、Springコンテキストファイルと.propertiesファイルの両方がルートにあります。

<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="abc.properties" />
  </bean>

<bean id="cmfModelDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="${jdbc.ConnectionUrl}"/>
      <property name="username" value="${jdbc.Username}"/>
      <property name="password" value="${jdbc.Password}"/>
  </bean>

この問題をすばやく修正する方法はありますか?

4

2 に答える 2

1

次のコードを使用して、Springを使用したマルチモジュールWebプロジェクトがあります。

<context:property-placeholder location="classpath:env/env.properties" />

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${env.datasource.driver}" />
    <property name="url" value="${env.datasource.url}" />
    <property name="username" value="${env.datasource.username}" />
    <property name="password" value="${env.datasource.password}" />
</bean>

xmlファイルの名前空間URLを確認することを忘れないでください。

xmlns:context="http://www.springframework.org/schema/context";

Springがそれを見つけることができるように、フォルダenvはクラスパスになければなりません。私のプロパティファイルもjar内にあり、正常に機能しています。

于 2012-09-01T18:06:54.450 に答える
0

エラーが発生し、intは、コンテキストを初期化する方法に関係している可能性があります。たとえば、私のWebアプリでは、web.xmlファイルで設定したフィルターに問題がありました。また、最終的にxmlファイルではなく、注釈付き構成クラスを使用して、これをweb.xmlに配置します。

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
    <param-name>contextClass</param-name>
    <param-value>
      org.springframework.web.context.support.AnnotationConfigWebApplicationContext
  </param-value>
</context-param>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>com.myapp.configuration.SpringConfig</param-value>
</context-param>

本当にxmlファイルを使用したい場合は、XmlWebApplicationContextのAnnotationConfigWebApplicationContextを変更する必要があります。コンテキストをどのように初期化しているかを教えてください(これで問題が解決しない場合は、コードやweb.xmlなど)

于 2012-09-01T18:24:53.733 に答える