Pertanyaan Java - konfigurasi file properti Spring untuk file jar


Java-Spring Saya memiliki proyek berbasis modul, saya memiliki modul untuk lapisan DAO dan modul untuk lapisan bisnis yang bergantung pada lapisan DAO dan lapisan web tergantung pada lapisan DAO dan lapisan bisnis.

Saya menggunakan maven untuk kompilasi proyek. dan jar dari setiap komponen adalah grup di bawah folder lib proyek web.

Masalahnya adalah saya memiliki file konteks musim semi dan file .property di dalam stoples DAO dan mengikuti konfigurasi saya tetapi saya tidak dapat memuat properti saya juga mencoba prefixing value="classpath:abc.properties tetapi itu tidak berhasil.

Ketika saya membuka stoples DAO baik konteks musim semi dan file .properties ada di root.

<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>

tahu bagaimana cara cepat memperbaiki masalah ini?


6
2017-08-31 20:40


asal


Jawaban:


Saya memiliki proyek web multi-modul dengan Spring menggunakan kode berikut:

<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>

Jangan lupa untuk memverifikasi url namespace di file xml:

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

Folder env harus berada di classpath, sehingga Spring dapat menemukannya. File properti saya juga ada di dalam toples, dan itu berfungsi dengan baik.


1
2017-09-01 18:06



Saya memiliki kesalahan dan int yang mungkin harus dilakukan dengan cara Anda menginisialisasi konteks, misalnya di aplikasi web saya masalahnya adalah dengan filter yang saya setel di file web.xml. Juga saya akhirnya menggunakan bukan file xml tetapi Kelas Konfigurasi Beranotasi dan menempatkan ini di 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>

Jika Anda benar-benar ingin menggunakan file xml, Anda harus mengubah AnnotationConfigWebApplicationContext untuk XmlWebApplicationContext. Anda harus memberi tahu kami bagaimana Anda menghasut konteks Anda (seperti kode atau web.xml jika ini tidak menyelesaikan masalah Anda)


0
2017-09-01 18:24