• 黔江:1000余亩蓝莓成熟 市民乐享“莓”好时光 2019-05-22
  • 【周展安】重新认识《在延安文艺座谈会上的讲话》的现实意义 2019-05-22
  • 十九大代表卢丽安利用周末与在沪台胞分享她参会心得  2019-05-19
  • (两会受权发布)最高人民法院院长简历 2019-05-14
  • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
  • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
  • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
  • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
  • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
  • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
  • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
  • 紫光阁中共中央国家机关工作委员会 2019-04-25
  • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
  • 西安启动唐长安城明德门遗址保护工程 2019-04-07
  • 今天看啥
      热点:

        新疆35选7的开奖号 www.ts3ne.com

        Spring @Value注解 and Spring Boot @ConfigurationProperties注解,


         

        一、Spring的@Value

        Spring EL表达式语言,支持在XML和注解中表达式,类是于JSP的EL表达式语言。

        在Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们可以使用Spring的表达式语言实现资源的注入。

         

        Spring主要在注解@Value的参数中使用表达式。

        • 注入普通字符串
        • 注入操作系统属性
        • 注入表达式运算结果
        • 注入其他Bean的属性
        • 注入文件内容
        • 注入网址内容
        • 注入属性文件(注意:用的是$符号)

         

        import org.springframework.core.io.Resource;
        import org.springframework.core.env.Environment;
        import org.apache.commons.io.IOUtils;
        
        @Component
        public class ELConfig {  
            @Value("注入普通字符串")// 注入普通字符串  
            private String normal;  
              
            @Value("#{systemProperties['os.name']}")// 注入操作系统属性  
            private String osName;  
              
            @Value("#{T(java.lang.Math).random() * 100.0 }")// 注入表达式结果  
            private double randomNumber;   
         
            @Value("#{payOrderQueryController.payCenterFacade}")// 注入其他Bean属性
            private IPayCenterFacade fromAnother;
              
            @Value("classpath:test.txt")// 注入文件资源  
            private Resource testFile;  
              
            @Value("https://www.baidu.com")// 注入网址资源  
            private Resource testUrl;  
          
            @Value("${book.name}")// 注入配置文件【注意是$符号】  
            private String bookName;  
              
            @Autowired// Properties可以从Environment获得  
            private Environment environment;  
          
            @Override  
            public String toString() {  
                try {  
                    return "ELConfig [normal=" + normal   
                            + ", osName=" + osName   //os.name,如Windows 8.1
                            + ", randomNumber=" + randomNumber   //值如97.53293482705482
                            + ", fromAnother=" + fromAnother   //别的bean的成员属性
                            + ", testFile=" + IOUtils.toString(testFile.getInputStream())   //输出文件里的内容
                            + ", testUrl=" + IOUtils.toString(testUrl.getInputStream())   //输出网页的html
                            + ", bookName=" + bookName  //配置的值
                            + ", environment=" + environment.getProperty("book.name") + "]";  
                } catch (IOException e) {  
                    e.printStackTrace();  
                    return null;  
                }  
            }  
              
        }  

         

         

        二、Spring Boot的@ConfigurationProperties

        先看下面的@Value注解:

            @Value("${book.name}")
            private String bookName;
            @Value("${book.author}")
            private String bookAuthor;

         上面这种使用@Value注入每个配置在实际项目中会显得格外麻烦,因为我们的配置通?;崾切矶喔?,就要使用@Value注入很多次。

        Spring Boot提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean关联,从而实现类型安全的配置。

        @Component
        @ConfigurationProperties(prefix = "book")
        public class Book {
        
            private String name;
            private String author;
            private int age;
            
            //get.. set..
        }

         

        @ConfigurationProperties有两个属性

        • prefix:指定properties的配置的前缀
        • locations:指定properties文件的位置

         

        新疆35选7的开奖号 www.ts3ne.comtrue//www.ts3ne.com/Javabc/1316466.htmlTechArticleSpring @Value注解 and Spring Boot @ConfigurationProperties注解, 一、Spring的@Value Spring EL表达式语言,支持在XML和注解中表达式,类是于JSP的EL表达式语...

        相关文章

          暂无相关文章
        相关搜索:

        帮客评论

        视觉看点
      • 黔江:1000余亩蓝莓成熟 市民乐享“莓”好时光 2019-05-22
      • 【周展安】重新认识《在延安文艺座谈会上的讲话》的现实意义 2019-05-22
      • 十九大代表卢丽安利用周末与在沪台胞分享她参会心得  2019-05-19
      • (两会受权发布)最高人民法院院长简历 2019-05-14
      • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
      • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
      • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
      • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
      • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
      • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
      • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
      • 紫光阁中共中央国家机关工作委员会 2019-04-25
      • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
      • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
      • 西安启动唐长安城明德门遗址保护工程 2019-04-07