Чтение java весенние свойства для местных - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть проект с именем Pikachu, и его структура выглядит следующим образом

src
 |-test
 |-main
    |-java
    |-config
        |-dev
        |-test
        |-prod
    |-resources
         |-pikachu.mvc.spring.xml

Каждая среда (dev, test, prod) имеет свой собственный файл свойств (формат .j2). Внутри pikachu.mvc.spring.xml я настроил bean-компонент для источника данных

// pikachu.mvc.spring.xml
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="${db.driver}" />
  <property name="url" value="${db.url}" />
  <property name="username" value="${db.username}" />
  <property name="password" value="${db.password}" />
</bean>

. Каждый файл свойств в другой среде:

// dev/pikachuCfg.properties.j2
db.username = {{pikachu.db_username}}
db.password = {{pikachu.db_password}}
db.url = {{pikachu.db_url}}
db.driver = {{pikachu.db_driver}}

. После развертывания в каждой среде он успешно загружает свойства. Однако, когда я запускаю его на локальном компьютере (jboss11), он выдает PropertyAccessException,

PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [${db.driver}]"}}

Так что вот мои вопросы. 1. Если мне нужен файл свойств в папке resources, имеет ли он более высокий порядок, чем файлы свойств в папке конфигурации? 2. Если он имеет более высокий порядок, чем другие файлы свойств в папке config, как этот проект использует файл свойств в другой среде (dev, test, prod)?

Заранее спасибо! EDIT Я прочитал документ (https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot -features-external-config ). Тем не менее, мне все еще неясно, какой из них имеет более высокий порядок между папкой config и текущей папкой (где находится spring. mvc. xml).

1 Ответ

0 голосов
/ 27 февраля 2020

Надеюсь, это поможет

  1. Поместите еще один файл application.properties в каталог конфигурации параллельно с dev, test & prod
  2. Добавьте к нему spring.profiles.active = dev
  3. Сохраняйте это комментарий, когда собираетесь в тестовую или рабочую среду
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...