你可能不知道的Spring Boot那点事

StacieBards 8年前
   <p>当前微服务的概念被炒的非常的火热,而Spring Boot则被赋予了”为微服务而生“的称号,相信看这篇文章的你,对微服务或者Spring Boot都有所了解了,我在该篇中也不再赘述,如果大家对Spring Boot有所兴趣,可以在公众号中留言,我会视情况而定。本文主要想讲讲配置文件相关的内容,你可能会比较疑惑,入门时期,最费时间的可能就是环境的配置</p>    <p>使用IDE创建工程正常情况都会生成一个 application.properties 文件,但我推荐使用YAML格式的 application.yml ,好处,谁用谁知道</p>    <p>例</p>    <pre>  <code class="language-java">girl:    height: 173    age: 20  cup: 64</code></pre>    <p>注意:冒号后面一定要有一个空格</p>    <p>数组</p>    <pre>  <code class="language-java">languages:   - Ruby   - Perl   - Python</code></pre>    <p>languages就是一个数组</p>    <p>变量引用</p>    <pre>  <code class="language-java">height: 178  decription: "my height is ${height}"</code></pre>    <p>在decription中引用了height值</p>    <p>随机数</p>    <pre>  <code class="language-java">my:      random:       - "${random.value}"      - "${random.int}"      - "${random.long}"      - "${random.int(10)}"      - "${random.int[10-30]}"</code></pre>    <p>使用random就可以产生随机数,可以有int、string、long等类型值</p>    <p>多环境配置</p>    <p>在实际开发中,肯定是存在开发、测试、线上多个环境的配置,如何解决这个问题</p>    <p>新建多个环境的配置文件,如: application-dev.yml、application-test.yml 等</p>    <p>在 application.yml 中加上</p>    <pre>  <code class="language-java">spring:      profiles:          active: dev</code></pre>    <p>如上配置则会选用dev环境的配置文件</p>    <p>注意:在 application.yml 中的配置是适用所有的环境的</p>    <p>Java环境读取配置变量</p>    <p>使用 @Value() 注解</p>    <pre>  <code class="language-java">@Value("${shareId}")  private String shareId;</code></pre>    <p>如上,就获取了shareId的值</p>    <p>使用 @ConfigurationProperties 注解</p>    <p>若存在多个相同的起点的配置变量</p>    <p>如</p>    <pre>  <code class="language-java">girl:    height: 173    age: 20</code></pre>    <p>新建一个properties的java文件,用于注入</p>    <pre>  <code class="language-java">@Component  @ConfigurationProperties(prefix = "girl")  public class GirlProperties {      private Integer age;      private String height;        public Integer getAge() {          return age;      }        public void setAge(Integer age) {          this.age = age;      }        public String getHeight() {          return height;      }        public void setHeight(String height) {          this.height = height;      }  }</code></pre>    <p>在实际业务中,只要引用一下相应properties的java文件即可</p>    <pre>  <code class="language-java">@Autowired  private GirlProperties girlProperties;</code></pre>    <p>松绑定</p>    <p>Spring Boot支持绑定的属性不需要很严格的匹配约束</p>    <p>例</p>    <pre>  <code class="language-java">first-peron: Smith</code></pre>    <p>在java文件中注入属性可以是这样子滴</p>    <pre>  <code class="language-java">@Component  public class Properties {      private String firstPerson;        public String getFirstPerson() {          return firstPerson;      }        public void setFirstPerson(String firstPerson) {          this.firstPerson = firstPerson;      }    }</code></pre>    <p> </p>    <p> </p>    <p>来自:https://segmentfault.com/a/1190000008256545</p>    <p> </p>