Статьи

Spring Annotations У меня никогда не было возможности использовать часть 2: @ConfigurationProperties

Несколько дней назад я случайно наткнулся на аннотацию Spring из проекта Spring Boot, пока проверял что-то еще.

Мы все знаем, как связать значения свойств с @Value с классами, и мы все знаем, что это может быть довольно громоздким, если существует несколько свойств для привязки. Spring Boot здесь, чтобы помочь. Вы можете использовать «@ConfigurationProperties» и довольно кратко связать несколько значений. Мы дадим префикс, чтобы отличать другие конфиги от наших. например, «@ConfigurationProperties (prefix =« jdbc »)».

Любое поле, которое имеет этот аннотированный класс, заполняется значениями свойств из ресурса свойств. Например, если у него есть параметр username, в этом поле будет заполнен ресурс ресурса с ключом «jdbc.username». Наиболее практичный способ использования этой аннотации — использовать ее с «@Configuration».

Вы можете проверить, как мы создаем класс конфигурации.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.sezinkarli.tryconfigprops;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
 
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
 
@Configuration
@ConfigurationProperties(prefix = "jdbc")
public class JdbcConfig
{
    private String user;
    private String password;
    private String url;
    private String driver;
 
    public String getUser()
    {
        return user;
    }
 
    public void setUser(String user)
    {
        this.user = user;
    }
 
    public String getPassword()
    {
        return password;
    }
 
    public void setPassword(String password)
    {
        this.password = password;
    }
 
    public String getUrl()
    {
        return url;
    }
 
    public void setUrl(String url)
    {
        this.url = url;
    }
 
    public String getDriver()
    {
        return driver;
    }
 
    public void setDriver(String driver)
    {
        this.driver = driver;
    }
 
    public String getProperty(String key)
    {
        return propertyMap.get(key);
    }
}

А ниже вы можете проверить свойства, которые мы отображаем из свойств приложения

1
2
3
4
jdbc.user=myJdbcUser
jdbc.password=myPwd
jdbc.url=myUrl
jdbc.driver=myJdbcDriver

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

1
2
3
4
5
6
7
@Service
public class YourService
{
 
    @Autowired
    private JdbcConfig jdbcConfig;
}

Вы также можете проверить работающий игрушечный проект здесь, используя «@ConfigurationProperties».

Опубликовано на Java Code Geeks с разрешения Сезина Карли, партнера нашей программы JCG . Смотрите оригинальную статью здесь: весенние аннотации, у меня никогда не было возможности использовать часть 2: @ConfigurationProperties

Мнения, высказанные участниками Java Code Geeks, являются их собственными.