3

I have a module for database communication(my-db-lib), and which is imported to spring boot based web application module(my-web-app)

I want to set configuration about db in my-db-lib, and set about web app in my-web-app

When I use yml file,

  1. application.yml in my-db-lib db: url: localhost
  2. application.yml in my-web-app app: message: hello

When my-web-app runs, it can read only app.message not db.url

It seems that yml files are just replaced with one which has highest priority (when not use profiles) Is it right? How can I achieve purpose?

Thanks, And sorry for my poor English :D

Minsu
  • 141
  • 8

2 Answers2

1

The application.yml in child module will be override by application.yml in parent module.

You can use this:

  1. application-my-db-lib.yml for module my-db-lib
  2. application.yml for module my-web-app
Peter Lin
  • 21
  • 4
  • How will Spring Boot know to load the lib specific application-my-db-lib.yml? To my knowledge it only scans for application.yml and everything with a suffix has to be added via active profiles. – Markus Rohlof Jan 05 '22 at 07:18
1

As a trick, I moved the other application.yml to the '/config' folder.

This should probably work.

my-db-lib/src/main/resources/config/application.yml
my-web-app/src/main/resources/application.yml

Perhaps you need to use a sufficiently high version of Spring Boot.

Note: Folders different from '/config', such as '/config/db', will not work.

mys
  • 119
  • 1
  • 12