2016-08-16 59 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

补充例子回答。 –

相关问题