2013-06-26 4 views
13

Làm cách nào để đặt cấu hình hoạt động qua chú thích vào mùa xuân?Làm cách nào để đặt cấu hình hoạt động thông qua chú thích vào mùa xuân?

Ví dụ:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = { ApplicationConfig.class }, loader = AnnotationConfigContextLoader.class) 
@ActiveProfiles(profiles = {ApplicationProfiles.TEST}) 
public class CacheManagerTest { 
    ... 
} 

Đối với thử nghiệm JUnit này làm việc hoàn hảo, nhưng làm thế nào tôi có thể init bối cảnh ứng dụng sản xuất? (Tôi không có bất kỳ phương pháp chính/сlasses)

+1

Bạn đang sử dụng loại cấu hình nào trong ứng dụng sản phẩm? Đây có phải là ứng dụng web không? –

+0

Xin chào @Malahov, hy vọng câu trả lời của tôi sẽ giải quyết được vấn đề của bạn. sử dụng thuộc tính hệ thống tiêu chuẩn là cách thông thường để kích hoạt các cấu hình trong môi trường sản xuất. Nếu điều này phù hợp với bạn, xin đừng quên đánh dấu câu trả lời của tôi là câu trả lời đúng. Chúc mừng. –

Trả lời

8

Nếu bạn đang sử dụng thực hiện một ứng dụng độc lập hoặc ứng dụng web bạn vượt qua cấu hình hoạt động này bằng cách nào, theo Spring blog

kích hoạt trong ứng dụng Web

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>spring.profiles.active</param-name> 
     <param-value>production</param-value> 
    </init-param> 
</servlet> 

Kích hoạt với ngữ cảnh được tạo theo cách thủ công

GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); 
ctx.getEnvironment().setActiveProfiles("dev"); 
ctx.load("classpath:/com/bank/config/xml/*-config.xml"); 
ctx.refresh(); 
+0

Tôi không có web.xml (đây không phải là ứng dụng web). Nếu kích hoạt bằng tay, ý tưởng đó sẽ bị mất thông qua cấu hình cấu hình. – Malahov

+0

Khối mã đầu tiên là sai. @Profile không "kích hoạt" một cấu hình, nó chỉ mô tả rằng cấu hình đó sẽ được kích hoạt khi hồ sơ được đề cập được kích hoạt. –

+0

@ Jonathan, đã xóa thông tin sai về JavaConfig. –

12

Bạn có thể chuyển (các) cấu hình đang hoạt động vào thời gian chạy bằng cách sử dụng spring.profiles.active thuộc tính:

-Dspring.profiles.active="profile1,profile2" 

Xem phần SpringSource blog post về giới thiệu tiểu sử.

+0

Bạn có thể liên kết tài liệu về tính năng này không? –