2016-08-16 60 views
3

我有一個問題,也許很簡單,但我找不到解決方案。有沒有辦法在spring4中禁用註釋?

我使用的春天啓動,並增加了一些註釋這樣的代碼:

@EnableEurekaClient 
@SpringBootApplication 
@EnableCaching 
public class MyApplication { 
    public static void main(String[] args) { 
     SpringApplication.run(MyApplication.class, args); 
    } 
} 

但在其他一些環境中,例如,在生產環境中,我們要刪除EurekaClient,但我不希望爲每個環境手動刪除它,而是我想使用環境變量或命令行參數來控制行爲。我想這樣做:

@EnableEurekaClient(Enabled = {EnableEureka}) 
@SpringBootApplication 
@EnableCaching 
public class MyApplication { 
     public static void main(String[] args) { 
      SpringApplication.run(MyApplication.class, args); 
     } 
} 

然後,我可以很容易地啓動這個應用程序,而無需觸摸代碼。

誰能告訴我這是否可能?如果是這樣,我該怎麼做?

感謝

回答

7

你想與Spring Boot Profiles工作。將@EnableEurekaClient拆分爲另一個@Configuration類,並將類@Profile("eureka-client")添加到該類。然後,在啓動應用程序時,可以爲生產以外的環境設置-Dspring.profiles.active=eureka-client

例子:

@SpringBootApplication 
@EnableCaching 
public class MyApplication { 
    public static void main(String[] args) { 
     SpringApplication.run(MyApplication.class, args); 
    } 
} 

@Configuration 
@EnableEurekaClient 
@Profile("eureka-client") 
public class EurekaClientConfiguration { 
} 
+0

你刷新,我的大腦!謝謝。將有第二個配置文件的閱讀。 – user3006967

+0

您可以更詳細地說明這一點:將EnableEurekaClient拆分爲另一個配置類,並向該類添加配置文件(「eureka-client」)。我不知道該怎麼做。謝謝 – user3006967

+0

補充例子回答。 –

相關問題