@ConfigurationProperties註解的理解和使用

1 @ConfigurationProperties說明

在編寫專案程式碼時,我們要求更靈活的配置,更好的模組化整合。在 Spring Boot 專案中,為滿足以上要求,我們將大量的引數配置在 application。properties 或 application。yml 檔案中,透過 @ConfigurationProperties 註解,我們可以方便的獲取這些引數值

2 使用@ConfigurationProperties

ConfigurationPropertiesTest。java

/*** @desc: @ConfigurationProperties* @author: YanMingXin* @create: 2021/7/27-17:36**/@ConfigurationProperties(prefix = “student”)@Componentpublic class ConfigurationPropertiesTest { private String name; private String age; public String getName() { return name; } public void setName(String name) { this。name = name; } public String getAge() { return age; } public void setAge(String age) { this。age = age; }}

SpringUtil。java

/*** @desc: SpringUtil* @author: YanMingXin* @create: 2021/7/27-17:55**/@Componentpublic class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (SpringUtil。applicationContext == null) { SpringUtil。applicationContext = applicationContext; } }/*** 獲取applicationContext** @return*/public static ApplicationContext getApplicationContext() { return applicationContext;}/*** 透過name獲取 Bean** @param name* @return*/public static Object getBean(String name) { return getApplicationContext()。getBean(name);}/*** 透過class獲取Bean** @param clazz* @param * @return*/public static T getBean(Class clazz) { return getApplicationContext()。getBean(clazz);}/*** 透過name,以及Clazz返回指定的Bean** @param name* @param clazz* @param * @return*/public static T getBean(String name, Class clazz) { return getApplicationContext()。getBean(name, clazz);}}

application。properties

student。name=zsstudent。age=23

測試:

@Testvoid contextLoads() { ConfigurationPropertiesTest bean = (ConfigurationPropertiesTest) SpringUtil。getBean(“configurationPropertiesTest”); System。out。println(bean。getAge());}

輸出:

23