Spring Вы можете автоувеличивать внутри абстрактного класса?
Spring не удается автообновить мой объект? Можно ли автоувеличивать объект в абстрактном классе. Предположим, что все схемы представлены в application-context.xml
Вопрос: Какая аннотация должна быть на основе и расширять классы (если есть) @Service @Component?
Пример
abstract class SuperMan {
@Autowire
private DatabaseService databaseService;
abstract void Fly();
protected void doSuperPowerAction(Thing thing) {
//busy code
databaseService.save(thing);
}
}
Расширение класса
public class SuperGirl extends SuperMan {
@Override
public void Fly() {
//busy code
}
public doSomethingSuperGirlDoes() {
//busy code
doSuperPowerAction(thing)
}
приложения context.xml
<context:component-scan base-package="com.baseLocation" />
<context:annotation-config/>
Ответы
Ответ 1
Обычно Spring должен выполнять автоустановку, если ваш абстрактный класс находится в базовом пакете, предусмотренном для сканирования компонентов.
Подробнее см. и .
@Service
и @Component
- оба стереотипа, которые создают beans аннотированного типа внутри контейнера Spring. Как состояние Spring Docs,
Эта аннотация служит в качестве специализации @Component, что позволяет классы реализации, подлежащие автоопределению через сканирование классов.
Ответ 2
У меня есть такая работа spring, работающая
абстрактный класс с полем с автоподстановкой
public abstract class AbstractJobRoute extends RouteBuilder {
@Autowired
private GlobalSettingsService settingsService;
и несколько детей, определенных с помощью аннотации @Component
.