Весна: @ Значение с ломбоком в другом классе - PullRequest
2 голосов
/ 27 апреля 2020

Можем ли мы использовать @Value с lombok?

Я создал класс ниже

@Getter
@Setter
class Hello
{

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

}

Можно ли повторно использовать значение String url в другом классе, используя методы получения и установки lombok?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Конечно. Lombok создает методы получения и установки, по умолчанию publi c, и поэтому они доступны любому другому классу с использованием обычного синтаксиса получения / установки. В этом случае вам просто нужно вызвать функцию:

yourHelloObject.getUrl()
0 голосов
/ 27 апреля 2020

Да, но при этом необходимо придерживаться правил автопроводки. Вам нужно дать среде Spring инъекцию зависимостей.

Если вы просто напишите

Hello hello = new Hello()
System.out.println(hello.getUrl()); // null

, тогда результат будет нулевым.

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

Это не имеет ничего общего с Ломбоком. Объект должен быть создан Spring. Один из способов сделать это - сделать его компонентом

@Component
@Getter
@Setter
class Hello
{
    @Value("${url}")
    private String url;
}

...

@Component
public class AnotherComponent {
    public AnotherComponent(Hello hello) { //constructor injection
        System.out.println(hello.getUrl()); //not null
    }
}
...