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)

    }

application-context.xml

<context:component-scan base-package="com.baseLocation" />
<context:annotation-config/>
57
задан 22 December 2017 в 21:10

1 ответ

Что при необходимости в какой-либо операции базы данных в SuperGirl, Вы ввели бы ее снова в SuperGirl.

я думаю, что основная идея использует ту же ссылку на объект в различных классах. Таким образом что относительно этого:

//There is no annotation about Spring in the abstract part.
abstract class SuperMan {


    private final DatabaseService databaseService;

    public SuperMan(DatabaseService databaseService) {
     this.databaseService = databaseService;
    }

    abstract void Fly();

    protected void doSuperPowerAction(Thing thing) {

        //busy code

        databaseService.save(thing);

    }
}
<час>
@Component
public class SuperGirl extends SuperMan {

private final DatabaseService databaseService;

@Autowired
public SuperGirl (DatabaseService databaseService) {
     super(databaseService);
     this.databaseService = databaseService;
    }

@Override
public void Fly() {
    //busy code
}

public doSomethingSuperGirlDoes() {

    //busy code

    doSuperPowerAction(thing)

}

, По-моему, введите когда-то выполненный везде :)

1
ответ дан 1 November 2019 в 17:12

Другие вопросы по тегам:

Похожие вопросы: