Springboot Autowire новый объект в абстрактном классе - PullRequest
1 голос
/ 21 октября 2019

У меня вопрос по java:

, возьмите этот пример кода

    public abstract class abstractClass {
        MyClass obj;

        public void init(Object obj) {
            this.obj = obj;
            do();
        }

        protected abstract void do();

    }

    @Component
    public class A implements abstractClass {

        @override
        protected void do() {
            this.obj.doThing();
        }
    }

    @Component
    public class TheClassIamNow {
        @Autowire
        private A aClass;

        public void iAmHereInTheCode() {

            MyClass obj = new MyClass();
            aClass.init(obj);

        }
    }

, следуя этому примеру, я получаю NullPointerException на obj, который находится внутри абстрактного класса накласс A когда я пытаюсь получить доступ к obj

В этом примере Object, конечно, не может быть автоматически подключен, потому что он не является компонентом и поставляется из другой библиотеки, где я вынужден использовать new MyClass()

Мне было интересно, есть ли способ достичь этого

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

класс A расширяет abstractClass. У вас есть орудия для интерфейсов.

0 голосов
/ 21 октября 2019

TheClassIamNow также должен быть аннотирован как компонент, чтобы пружина автоматически связывала его переменные.

...