Мне было интересно, как я могу реализовать простой фабричный шаблон с аннотациями Spring 3.В документации я видел, что вы можете создавать bean-компоненты, которые вызывают фабричный класс и запускают фабричный метод.Мне было интересно, если бы это было возможно, используя только аннотации.
У меня есть контроллер, который в данный момент вызывает
MyService myService = myServiceFactory.getMyService(test);
result = myService.checkStatus();
MyService - это интерфейс с одним методом с именем checkStatus ().
Мой класс фабрики выглядит так:
@Component
public class MyServiceFactory {
public static MyService getMyService(String service) {
MyService myService;
service = service.toLowerCase();
if (service.equals("one")) {
myService = new MyServiceOne();
} else if (service.equals("two")) {
myService = new MyServiceTwo();
} else if (service.equals("three")) {
myService = new MyServiceThree();
} else {
myService = new MyServiceDefault();
}
return myService;
}
}
Класс MyServiceOne выглядит так:
@Autowired
private LocationService locationService;
public boolean checkStatus() {
//do stuff
}
Когда я запускаю этот код, переменная locationService всегда пуста.Я полагаю, это потому, что я сам создаю объекты внутри фабрики, а автопроводка не происходит.Есть ли способ добавить аннотации для правильной работы?
Спасибо