Есть некий интерфейс:
public interface SomeInterface {
@Annotation1
@Annotation2
@Annotation3
String getSomeNewObject(Object obj);
}
В нём благодаря аннотациями уже описана вся логика и нет нужды в реализации сервиса. Как можно сделать @Autowired
этого интерфейса и вызывать его в другом сервисе например.
@Service
public class SomeService {
@Autowired
SomeInterface someInterface;
public String doSomething(Object obj) {
String str = someInterface.getSomeNewObject(obj);
return str;
}
}
Если говорить и идти по накатанной программистами дороге, то ответ такой:
Нет. Это невозможно, Spring
попытается найти и создать экземпляр с реализацией
(Instance
) данного интерфейса, а как нам известно создавать
экземпляры интерфейса или абстрактных классов нельзя.
Но если сойти с ума, то конечно возможно всё, однако данный способ очень нетривиальный и скорее всего если ваш код будет сопровождать психопат знающий где вы живёте, будет не очень приятно.
@Configuration
public class SomeBeanConfig {
@Bean
public SomeInterface publicBean() {
return new SomeInterface() {
};
}
}
Сделайте пустую реализацию ващего интерфейса, поставьте над ней @Component, и инжектайте себе спокойно, так как и хотели, через @Autowired
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем привет! Я только новичок и пытаюсь разобраться с циклом for в Java
Есть метод в кодеОн подключается к базе и заносит туда значения
Есть класс, в котором есть 3 функцииДве из них должны возвратить значение
Я хотела сделать так, чтобы вся информация о спрайте хранилась в объекте и функцию отрисовки можно было бы использовать много раз не только...