Почему @Value работает, а @ConfigurationProperties — нет?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему @Value работает, а @ConfigurationProperties — нет?

Сообщение Anonymous »


Мой класс:

пакет com.myCom.test; импортировать org.springframework.beans.factory.annotation.Value; импортировать org.springframework.boot.context.properties.ConfigurationProperties; импортировать org.springframework.context.annotation.Configuration; импортировать org.springframework.stereotype.Component; @Компонент @ConfigurationProperties(prefix = "sample.mail") общественный класс ConfigProperties { @Value("${sample.mail.hostName}") частная строка имя_хоста; частный международный порт; частная строка из; публичная строка getHostName() { вернуть имя хоста; } public void setHostName (String hostName) { this.hostName = имя_хоста; } общественный ИНТ getPort () { обратный порт; } public void setPort(int port) { this.port = порт; } публичная строка getFrom() { вернуться из; } общественный недействительный setFrom (Строка из) { this.from = откуда; } } Мой тест:

пакет com.myCom.test; импортировать статический org.junit.jupiter.api.Assertions.assertNotNull; импортировать org.junit.jupiter.api.Test; импортировать org.springframework.beans.factory.annotation.Autowired; импортировать org.springframework.boot.test.context.SpringBootTest; импортировать org.springframework.context.annotation.Bean; импортировать org.springframework.test.context.ContextConfiguration; @ContextConfiguration( классы = { ConfigProperties.class }) @SpringBootTest общественный класс ConfigPropertiesIT { @Autowired свойства ConfigProperties; @Тест общественный недействительный testProperty () { AssertNotNull (свойства); AssertNotNull(properties.getHostName()); AssertNotNull(properties.getFrom()); } } Мое приложение.yaml

пример: почта: Имя хоста: www.myCom.com порт: 8088 от: Пользователь Почему поле HostName работало, а поле from не работало? Добавление аннотации @Value заставляет поле работать, а ее удаление делает поле неработающим. Кажется, что аннотация @ConfigurationProperties не пытается привязать свойства к полям, хотя имена совпадают. Я подозреваю, что @ContextConfiguration может привести к тому, что эта привязка не произойдет, но мне нужна помощь кого-то с более глубоким пониманием.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»