Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple application.yml not merged in Spring Boot

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

like image 295
Minsu Avatar asked Oct 27 '25 07:10

Minsu


2 Answers

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.

like image 53
mys Avatar answered Oct 30 '25 06:10

mys


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
like image 28
Peter Lin Avatar answered Oct 30 '25 06:10

Peter Lin