2016-04-06 2 views
0

Как я могу выбрать, какой класс вызывать только с аннотациями? Например, мне нужно назвать мой класс "Test_2"Как использовать @autowired в разных классах, которые реализуют один и тот же интерфейс только с аннотациями

Интерфейс:

public interface Inter { 

public void useInterface(); 

} 

Класс 1:

public class Test_1 implements Inter { 

public void useInterface(){ 
    System.out.println("Instance Class Test_1"); 
} 
} 

Класс 2:

public class Test_2 implements Inter { 

public void useInterface(){ 
    System.out.println("Instance Class Test_2"); 
} 
} 

Класс вызовов:

public class Call { 

@Autowired 
private Inter inter; 

public Call(){ 
    inter.useInterface(); 
} 

} 
+0

Может вы показываете ho w вы настроили свой ApplicationContext? –

ответ

5

anotate классах таким образом:

@Component("test1") 
public class Test_1 implements Inter { 

    public void useInterface(){ 
     System.out.println("Instance Class Test_1"); 
    } 
} 

и использовать

@Autowired 
@Qualifier("test1") 
private Inter inter; 
+0

Если не требуется какое-либо причудливое имя, Spring автоматически будет использовать имя класса в нижнем регистре. – dambros

+0

@ dambros oh, приятно знать, thx – JohnnyAW

2

Вы должны использовать спецификатор, то есть:

@Autowired 
@Qualifier("test_2") 
private Inter inter; 
Смежные вопросы

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