Установка переменной через Spring в зависимости? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть два отдельных класса, каждый класс находится в другой банке. Класс B является зависимостью от A. Я хочу иметь возможность передать значение переменной в классе A (URL-адрес, загруженный из файла конфигурации) в B. Однако у меня возникают проблемы с этим, поскольку значение всегда заполняется как ноль.

public class A {

@Value("${url.name}")
private String url;

...

B b = new B();

Вот мой класс B

@Component
public class B implements BInterface {

@Autowired
private String url

Я отладил и подтвердил, что URL-адрес успешно загружается в классе A, но, тем не менее, похоже, не передается в B. Может кто-нибудь подсказать, где я ошибаюсь? Обратите внимание, что класс B находится в совершенно отдельном JAR-файле от A, и я думаю, что именно в этом и заключается суть проблемы. По сути, я хотел бы знать, как лучше всего передать значение в JAR в классе A, а затем передать это значение в класс в классе B, чей JAR является зависимостью или A.

1 Ответ

0 голосов
/ 02 июля 2018

В классе A вы не можете вызвать new B(), если ожидаете, что он поступит из контекста Spring.

Как насчет @Autowire класса B в А. как такового?

public class A {

@Value("${url.name}")
private String url;

...

@Autowire
private B b;

Кроме того, вы не можете автоматически связать свойство String. Так что насчет @Value URL-адреса Sring в классе B.

@Component
public class B implements BInterface {

@Value("${url.name}")
private String url;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...