Google Guice @ Inject дает ноль при выполнении DI @Autowired весной - PullRequest
0 голосов
/ 23 апреля 2020

Я работаю в каркасе пружины и в микросервисной арке. У меня есть один класс, такой как MainClass.java, в котором я делаю инъекцию LibraryClass.java, используя @AutoWired. LibraryClass.java класс присутствует внутри data-lib.jar

import org.springframework.beans.factory.annotation.Autowired;
import com.data.LibraryClass;

public class MainClass {

    @Autowired
    LibraryClass libraryClass;

    String value = libraryClass.getData();
}

Внутри data-lib.jar jar зависимостей LibraryClass.java файл выглядит следующим образом, и я вводю OtherLibraryClass.java с помощью Google Guice DI @Inject. Класс OtherLibraryClass.java также присутствует внутри data-lib.jar

package com.data;
import com.google.inject.Inject;

public class LibraryClass {

     @Inject
     OtherLibraryClass otherLibraryClass;

     public String getData() {
          return  otherLibraryClass.getValue(); // throwing null pointer exception      
     }

}

При вызове метода getData() из MainClass.java выдается исключение нулевого указателя. похоже, что OtherLibraryClass.java экземпляр не создается автоматически Guice. Если он создан Guice, то автоматически внедряет все зависимости.

Я не хочу ничего менять внутри data-lib.jar. Я могу изменить в MainClass.java, так что проблема будет решена. Есть ли способ работать должным образом без каких-либо исключений.

Примечание: data-lib.jar был встроен в игровую среду. вот почему я не хочу меняться в банке зависимостей. Если мы вызываем getData() метод из другого сервера фреймворка play, он работает нормально Только при звонке с пружинных рамок серв я сталкиваюсь с этой проблемой

Заранее спасибо

...