以前使用spring的使用要注入property要配置PropertyPlaceholder的bean對象。在springboot除 了這種方式以外還可以通過制定 配置ConfigurationProperties直接把property文件的 屬性映射到 當前類里面。
成都創新互聯公司不只是一家網站建設的網絡公司;我們對營銷、技術、服務都有自己獨特見解,公司采取“創意+綜合+營銷”一體化的方式為您提供更專業的服務!我們經歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關注我們的成都做網站、成都網站設計質量和服務品質,在得到用戶滿意的同時,也能得到同行業的專業認可,能夠為行業創新發展助力。未來將繼續專注于技術創新,服務升級,滿足企業一站式全網營銷推廣需求,讓再小的品牌網站建設也能產生價值!
@ConfigurationProperties(prefix = "mypro", merge = true, locations = { "classpath:my.properties" })
ConfigurationProperties prefix 屬性指示property文件中屬性的前綴是什么。我這里寫的是mypro。
因此property文件的屬性必須mypro.x.y=z的形式;
配置好ConfigurationProperties 之后就可以把property文件的屬性映射到當前類了。
mypro.a:1 mypro.b:2 abc.d:123
property 文件里面mypro前綴的有a 和b兩個。因此我在當前類就可以新建這兩個屬性。
private int a; private int b;
這些需要映射的屬性一定要加上getter 和setter。因為spring是通過反射調用方法來修改屬性值的
以前使用spring注入property的方式也同樣適用。以前是xml配置PropertyPlaceholder?,F在使用@bean 或者直接@Component配置這個類。只要把PropertyPlaceholderConfigurer添加到bean工廠,就可以使用@Value 取值了。
@Component public class MyPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer{ public MyPropertyPlaceholderConfigurer(){ this.setIgnoreResourceNotFound(true); final List<Resource> resourceLst = new ArrayList<Resource>(); resourceLst.add(new ClassPathResource("my.properties")); this.setLocations(resourceLst.toArray(new Resource[]{})); } } @Value("abc.d") private String test;
另外的一種方法跟第二種差不多的。更像以前的xml配置PropertyPlaceholder。只是現在的配置是用@Configuration標注的類,用@Bean標注要配置的bean對象;
@Configuration public class Testproperties { @Bean public PropertyPlaceholderConfigurer properties(){ final PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); ppc.setIgnoreResourceNotFound(true); final List<Resource> resourceLst = new ArrayList<Resource>(); resourceLst.add(new ClassPathResource("my.properties")); ppc.setLocations(resourceLst.toArray(new Resource[]{})); return ppc; } }
以上所述是小編給大家介紹的spring boot 注入 property的三種方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創新互聯網站的支持!
本文標題:springboot注入property的三種方式(推薦)
當前網址:http://vcdvsql.cn/article42/poohhc.html
成都網站建設公司_創新互聯,為您提供網站設計公司、自適應網站、外貿建站、營銷型網站建設、服務器托管、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯