2013-10-26 28 views
24

Tôi đã tạo một dự án web mùa xuân bằng cách sử dụng Khởi động mùa xuân. Muốn hiểu thực hành xung quanh thử nghiệm. Tôi yêu cầu một cơ sở dữ liệu nhúng trong bộ nhớ nói hsql hoặc h2 cho junits của tôi với schema.sql ban đầu. Và trên ứng dụng chính cơ sở dữ liệu có thể nói mysql hoặc oracleThử nghiệm khởi động mùa xuân bằng bộ nhớ db

Trong một dự án khởi động không khởi động, chúng ta thường sẽ có một ứng dụng riêng biệtextextext.xml được ứng dụng web giới thiệu và thử nghiệm chúng tôi sẽ sử dụng applicationContext- text.xml

Bây giờ, trong Spring boot vì mọi thứ được tạo tự động và Spring Boot cũng được chọn. Tôi muốn biết làm thế nào để thiết lập một db inmemory được nhúng cho Junits và một db bên ngoài như MySQL cho ứng dụng.

Một giải pháp mà tôi có thể nghĩ là sử dụng Hồ sơ. với 2 tập tin thuộc tính application.properties và application-test.properties. và sử dụng hồ sơ kiểm tra cho junits của tôi.

Bất kỳ đề xuất nào về cách tiếp cận tôi nên thực hiện.

Trả lời

34

Hồ sơ thực sự là phương pháp được đề xuất. Những gì tôi sẽ làm là có thể làm cho việc thực hiện bộ nhớ trong cấu hình "mặc định" (vô hại, theo nghĩa là bạn không bao giờ thay đổi bất kỳ dữ liệu thực nào, vì vậy tốt hơn là đặt mặc định trong trường hợp ai đó vô tình chạy nó đối với cơ sở dữ liệu thực). Cá nhân, tôi thích đặt tất cả cấu hình bên ngoài vào một tệp application.yml duy nhất, nhưng điều đó thực sự tùy thuộc vào bạn. Trong cấu hình bên ngoài, bạn cần cung cấp một lớp trình điều khiển và URL hợp lệ, ví dụ:

spring: 
    datasource: 
    driverClassName: org.h2.Driver 
    url: jdbc:h2:mem:test;MODE=PostgreSQL 
    schema: classpath:/schema.sql 

--- 

spring: 
    profiles: local 
    datasource: 
    url: jdbc:postgresql://localhost/test 
    username: root 
    password: changeme 
    driverClassName: org.postgresql.Driver 
    schema: 

(Lưu ý rằng H2 có một chế độ tương thích postgres, vì vậy nó là thật sự tốt đẹp như một bổ sung cho postgres trong sản xuất.)

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