2015-11-24 3 views
1

Я делаю проект Spring в первый раз и встал с проблемой.Как указать несколько условий с помощью @Conditional аннотации

У меня есть класс Java:

@Component 
@Conditional(AppA.class) 
public class AppDeploy {...} 

Теперь мне нужно изменить это, как:

@Component 
@Conditional(AppA.class or AppB.class) 
public class AppDeploy {...} 

Может кто-то помочь мне с тем, как это сделать? Спасибо в ожидании.

ответ

0

Это было очень просто, нужно было потратить немного времени, прежде чем публиковать вопрос. Вот как я это сделал.

создал новый класс:

public class AppAOrB implements Condition { 
    public AppAOrB() { 
     super(); 
    } 

    @Override 
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) { 
     Environment env = conditionContext.getEnvironment(); 
     return env.containsProperty("APP_A")||env.containsProperty("APP_B"); 
    } 
} 

Затем использовали нравится:

@Component 
@Conditional(AppAOrB.class) 
public class AppDeploy {...} 
1

Вы можете создать свою собственную условную аннотацию, которая позволяет вам обеспечить параметры, а затем вы можете применить условие тестов в зависимости от переданного значения параметра:

см этого поста для более подробной информации: http://www.javacodegeeks.com/2013/10/spring-4-conditional.html

+0

Спасибо за указателем. Я могу сделать это сейчас. – user1731553

Смежные вопросы