2015-10-20 27 views
13

Tôi có một ứng dụng khởi động mùa xuân được chia thành nhiều mô-đun. Mô-đun chính chạy ứng dụng và có tệp application.properties trong thư mục tài nguyên. Tôi tự hỏi nếu tôi có thể thêm một tập tin thuộc tính trong một submodule để tách các thuộc tính thuộc về module đó và làm thế nào để làm việc này (vì nó không phải là).Cách thêm nhiều tệp application.properties vào spring-boot?

+main_module 
    +src 
    +main 
     +java 
     +my/package/Application.java 
     +resources/application.properties 
+support_module 
    +src 
    +main 
     +java 
     +resources/application.properties 

Vì vậy, đây là tình huống hiện tại. Rõ ràng các tập tin thuộc tính trong mô-đun support_module không đọc gây ra một NoSuchBeanDefinitionException, trong khi nếu tôi đặt nội dung trong các thuộc tính khác tập tin tất cả mọi thứ hoạt động tốt.

+0

Bạn đã thử sử dụng mô đun maven bằng cách giới thiệu tệp pom.xml gốc? – Gangaraju

+0

Chắc chắn tôi có một phụ huynh pom –

Trả lời

14

Những gì bạn đang cố gắng thực hiện sẽ không hoạt động khi sử dụng Maven hoặc Gradle. Lý do là khi tạo phẩm (jar có khả năng nhất kể từ khi bạn đang sử dụng Spring Boot) được tạo, sẽ chỉ có một tệp application.properties trong thư mục gốc.

Tôi khuyên bạn nên thay đổi tên của tệp thuộc tính trên mô-đun hỗ trợ và sau đó định cấu hình Spring Boot để tìm tệp đó (xem this hoặc this câu trả lời cho con trỏ) hoặc sử dụng một số loại hợp nhất nhiệm vụ cho các công cụ xây dựng của bạn (giống như this lẽ)

+0

Đề xuất đầu tiên trông thú vị. Làm thế nào tôi có thể hướng dẫn khởi động mùa xuân để tìm các thuộc tính trong module thứ cấp? –

+0

@mat_boy Hãy xem câu trả lời cập nhật của tôi, vui lòng – geoand

+0

@mat_boy Bạn cũng sẽ thấy [this] (http://stackoverflow.com/a/30213550/2504224) SO thread – geoand

0

bạn cũng có thể tham khảo một vị trí rõ ràng bằng cách sử dụng tài sản môi trường spring.config.location (danh sách bằng dấu phẩy của các địa điểm danh bạ, hoặc đường dẫn tập tin)

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties 

Để biết thêm thông tin click đây

Các vấn đề liên quan