Переопределение метода @bean абстрактного класса для предотвращения внедрения бобов - PullRequest
0 голосов
/ 20 февраля 2019

Я переопределяю аннотированный метод @bean абстрактного класса.Я делаю это, чтобы предотвратить создание bean-компонентов из этого абстрактного класса.

class AbstractClass {

    @Bean
    OperationClass injectBean() {
        //injects its own type of OperationClass
    }
}


class MyClass extends AbstractClass {

    @Bean(name="customOperation")
    OperationClass injectBean() {
        //inject my own bean
    }

}

Но этот код в конечном итоге регистрирует 2 bean-компонента в контексте Spring.Что я должен сделать, чтобы предотвратить увольнение @bean родительского класса?

1 Ответ

0 голосов
/ 05 марта 2019

Возврат значения null из аннотированного метода @Bean не регистрирует компонент.

class MyClass extends AbstractClass {

    @Bean(name="customOperation")
    OperationClass injectBean() {
        return null;
    }

}

Невозможно предотвратить регистрацию компонента в абстрактном классе, если ваш ребенок сканируется весной.Переопределив родительский метод, вы можете управлять логикой создания бина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...