SpringBoot01 InteliJ IDEA安裝、Maven配置、建立SpringBoot項目、yml屬性配置、多環境配置、自定義properties配置

 

1 IntelliJ IDEA 安裝

  下載地址:點擊前往html

  

  注意:須要下載專業版本的,註冊碼在網上隨便搜一個就行啦java

 

2 MAVEN工具的安裝

  2.1 獲取安裝包

    下載地址:點擊前往mysql

    

  2.2 安裝過程

    到官網下載的maven是綠色版的,無需安裝,解壓便可git

    

  2.3 修改maven的配置

    2.3.1 配置maven的本地倉庫路徑

      <localRepository>D://PTool/maven/apache-maven-3.5.0/conf/bdck</localRepository>web

    2.3.2 配置maven的遠程倉庫地址

<mirror>
      <id>aliyun</id>
      <name>aliyun Maven</name>
      <mirrorOf>*</mirrorOf>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

    注意:這兩個配置都只須要在setting.xml中設置就能夠啦redis

      

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <!--
  4 Licensed to the Apache Software Foundation (ASF) under one
  5 or more contributor license agreements.  See the NOTICE file
  6 distributed with this work for additional information
  7 regarding copyright ownership.  The ASF licenses this file
  8 to you under the Apache License, Version 2.0 (the
  9 "License"); you may not use this file except in compliance
 10 with the License.  You may obtain a copy of the License at
 11 
 12     http://www.apache.org/licenses/LICENSE-2.0
 13 
 14 Unless required by applicable law or agreed to in writing,
 15 software distributed under the License is distributed on an
 16 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17 KIND, either express or implied.  See the License for the
 18 specific language governing permissions and limitations
 19 under the License.
 20 -->
 21 
 22 <!--
 23  | This is the configuration file for Maven. It can be specified at two levels:
 24  |
 25  |  1. User Level. This settings.xml file provides configuration for a single user,
 26  |                 and is normally provided in ${user.home}/.m2/settings.xml.
 27  |
 28  |                 NOTE: This location can be overridden with the CLI option:
 29  |
 30  |                 -s /path/to/user/settings.xml
 31  |
 32  |  2. Global Level. This settings.xml file provides configuration for all Maven
 33  |                 users on a machine (assuming they're all using the same Maven
 34  |                 installation). It's normally provided in
 35  |                 ${maven.home}/conf/settings.xml.
 36  |
 37  |                 NOTE: This location can be overridden with the CLI option:
 38  |
 39  |                 -gs /path/to/global/settings.xml
 40  |
 41  | The sections in this sample file are intended to give you a running start at
 42  | getting the most out of your Maven installation. Where appropriate, the default
 43  | values (values used when the setting is not specified) are provided.
 44  |
 45  |-->
 46 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
 47           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 48           xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 49   <!-- localRepository
 50    | The path to the local repository maven will use to store artifacts.
 51    |
 52    | Default: ${user.home}/.m2/repository
 53   <localRepository>/path/to/local/repo</localRepository>
 54   -->
 55   <localRepository>D://PTool/maven/apache-maven-3.5.0/conf/bdck</localRepository>
 56   
 57 
 58   <!-- interactiveMode
 59    | This will determine whether maven prompts you when it needs input. If set to false,
 60    | maven will use a sensible default value, perhaps based on some other setting, for
 61    | the parameter in question.
 62    |
 63    | Default: true
 64   <interactiveMode>true</interactiveMode>
 65   -->
 66 
 67   <!-- offline
 68    | Determines whether maven should attempt to connect to the network when executing a build.
 69    | This will have an effect on artifact downloads, artifact deployment, and others.
 70    |
 71    | Default: false
 72   <offline>false</offline>
 73   -->
 74 
 75   <!-- pluginGroups
 76    | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
 77    | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
 78    | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
 79    |-->
 80   <pluginGroups>
 81     <!-- pluginGroup
 82      | Specifies a further group identifier to use for plugin lookup.
 83     <pluginGroup>com.your.plugins</pluginGroup>
 84     -->
 85   </pluginGroups>
 86 
 87   <!-- proxies
 88    | This is a list of proxies which can be used on this machine to connect to the network.
 89    | Unless otherwise specified (by system property or command-line switch), the first proxy
 90    | specification in this list marked as active will be used.
 91    |-->
 92   <proxies>
 93     <!-- proxy
 94      | Specification for one proxy, to be used in connecting to the network.
 95      |
 96     <proxy>
 97       <id>optional</id>
 98       <active>true</active>
 99       <protocol>http</protocol>
100       <username>proxyuser</username>
101       <password>proxypass</password>
102       <host>proxy.host.net</host>
103       <port>80</port>
104       <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
105     </proxy>
106     -->
107   </proxies>
108 
109   <!-- servers
110    | This is a list of authentication profiles, keyed by the server-id used within the system.
111    | Authentication profiles can be used whenever maven must make a connection to a remote server.
112    |-->
113   <servers>
114     <!-- server
115      | Specifies the authentication information to use when connecting to a particular server, identified by
116      | a unique name within the system (referred to by the 'id' attribute below).
117      |
118      | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
119      |       used together.
120      |
121     <server>
122       <id>deploymentRepo</id>
123       <username>repouser</username>
124       <password>repopwd</password>
125     </server>
126     -->
127 
128     <!-- Another sample, using keys to authenticate.
129     <server>
130       <id>siteServer</id>
131       <privateKey>/path/to/private/key</privateKey>
132       <passphrase>optional; leave empty if not used.</passphrase>
133     </server>
134     -->
135   </servers>
136 
137   <!-- mirrors
138    | This is a list of mirrors to be used in downloading artifacts from remote repositories.
139    |
140    | It works like this: a POM may declare a repository to use in resolving certain artifacts.
141    | However, this repository may have problems with heavy traffic at times, so people have mirrored
142    | it to several places.
143    |
144    | That repository definition will have a unique id, so we can create a mirror reference for that
145    | repository, to be used as an alternate download site. The mirror site will be the preferred
146    | server for that repository.
147    |-->
148   <mirrors>
149     <!-- mirror
150      | Specifies a repository mirror site to use instead of a given repository. The repository that
151      | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
152      | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
153      |
154     <mirror>
155       <id>mirrorId</id>
156       <mirrorOf>repositoryId</mirrorOf>
157       <name>Human Readable Name for this Mirror.</name>
158       <url>http://my.repository.com/repo/path</url>
159     </mirror>
160      -->
161     <mirror>
162       <id>aliyun</id>
163       <name>aliyun Maven</name>
164       <mirrorOf>*</mirrorOf>
165       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
166     </mirror>
167   </mirrors>
168 
169   <!-- profiles
170    | This is a list of profiles which can be activated in a variety of ways, and which can modify
171    | the build process. Profiles provided in the settings.xml are intended to provide local machine-
172    | specific paths and repository locations which allow the build to work in the local environment.
173    |
174    | For example, if you have an integration testing plugin - like cactus - that needs to know where
175    | your Tomcat instance is installed, you can provide a variable here such that the variable is
176    | dereferenced during the build process to configure the cactus plugin.
177    |
178    | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
179    | section of this document (settings.xml) - will be discussed later. Another way essentially
180    | relies on the detection of a system property, either matching a particular value for the property,
181    | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
182    | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
183    | Finally, the list of active profiles can be specified directly from the command line.
184    |
185    | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
186    |       repositories, plugin repositories, and free-form properties to be used as configuration
187    |       variables for plugins in the POM.
188    |
189    |-->
190   <profiles>
191     <!-- profile
192      | Specifies a set of introductions to the build process, to be activated using one or more of the
193      | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
194      | or the command line, profiles have to have an ID that is unique.
195      |
196      | An encouraged best practice for profile identification is to use a consistent naming convention
197      | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
198      | This will make it more intuitive to understand what the set of introduced profiles is attempting
199      | to accomplish, particularly when you only have a list of profile id's for debug.
200      |
201      | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
202     <profile>
203       <id>jdk-1.4</id>
204 
205       <activation>
206         <jdk>1.4</jdk>
207       </activation>
208 
209       <repositories>
210         <repository>
211           <id>jdk14</id>
212           <name>Repository for JDK 1.4 builds</name>
213           <url>http://www.myhost.com/maven/jdk14</url>
214           <layout>default</layout>
215           <snapshotPolicy>always</snapshotPolicy>
216         </repository>
217       </repositories>
218     </profile>
219     -->
220 
221     <!--
222      | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
223      | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
224      | might hypothetically look like:
225      |
226      | ...
227      | <plugin>
228      |   <groupId>org.myco.myplugins</groupId>
229      |   <artifactId>myplugin</artifactId>
230      |
231      |   <configuration>
232      |     <tomcatLocation>${tomcatPath}</tomcatLocation>
233      |   </configuration>
234      | </plugin>
235      | ...
236      |
237      | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
238      |       anything, you could just leave off the <value/> inside the activation-property.
239      |
240     <profile>
241       <id>env-dev</id>
242 
243       <activation>
244         <property>
245           <name>target-env</name>
246           <value>dev</value>
247         </property>
248       </activation>
249 
250       <properties>
251         <tomcatPath>/path/to/tomcat/instance</tomcatPath>
252       </properties>
253     </profile>
254     -->
255   </profiles>
256 
257   <!-- activeProfiles
258    | List of profiles that are active for all builds.
259    |
260   <activeProfiles>
261     <activeProfile>alwaysActiveProfile</activeProfile>
262     <activeProfile>anotherAlwaysActiveProfile</activeProfile>
263   </activeProfiles>
264   -->
265 </settings>
setting.xml

     2.3.3 配置maven的環境變量spring

      

      

      注意:配置maven的環境變量前請配置好Java的環境變量sql

        

        

    配置完環境變量後再dos窗口中執行:mvn -v 查看版本數據庫

      

 

 

 

 

 

3 在 InteliJ IDEA 中配置maven

  配置信息看圖便可express

    

 

4 建立SpringBoot項目

  

 

   

  

  

  注意:會自動生成一個包含main函數的應用入口類

package cn.xinagxu.girl02;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Girl02Application {

    public static void main(String[] args) {
        SpringApplication.run(Girl02Application.class, args);
    }
}
View Code

  注意:建立好的springboot項目的pom.xml文件已經自動引入了兩個依賴和一個插件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.xinagxu</groupId>
    <artifactId>girl02</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>girl02</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>
pom.xml

   福利:SpringBoot項目腳手架 -> 點擊前往

    該腳手架包含的東西

      》開發熱部署

      》日誌文件配置;注意:日誌文件配置在static中的logback-spring.xml,若是要使用將這個配置文件移動到resources目錄下後進入該配置文件修改日誌存放路徑便可使用

      》多環境配置;注意:默認使用的是開發環境

      》數據庫配置;注意:使用的mysql數據庫

  4.1 利用springBoot項目編寫一個hello world

    編寫一個controller類,當前段請求爲 http://127.0.0.1:8080/ 時以JSON格式放回 Hello World!

package cn.xinagxu.girl02.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping(value = "/")
    public String hello() {
        return "Hello World!";
    }
}
View Code

    注意:@RestController = @Controller + @ResponseBody

 

   4.2 啓動應用

    4.2.1 直接在應用入口類中點擊右鍵運行便可

      

    4.2.2 利用maven啓動

      進入到項目的根目錄後執行

        mnv spring-boot:run

      

    4.2.3 利用maven啓動方式2

      進入到醒目根目錄

        執行 mvn install 編譯項目

          

        再去到 target 目錄下 cd target

          注意:target目錄存放的都是編譯事後的文件

          

        再利用 java -jar 項目名.jar

          

 

5 屬性配置

  5.1 springBoot支持兩種方式的配置文件

    properties  yml

      配置上下文路徑爲  /girl02

      配置端口爲:8888   

server.context-path=/girl02
server.port=8888
properties的配置格式
server:
  context-path: /girl
  port: 9999
yml的配置格式

注意:yml的配置時冒號後面必須加一個空格;推薦使用yml格式的配置方式

  5.2 單個的屬性配置

    在配置文件中配置變量以及變量值

      

    在須要用到的地方引入這個屬性,相似於從容器中引入對象同樣

      

package cn.xinagxu.girl02.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Controller
@ResponseBody
public class HelloController {

    @Value("${character}")
    private String character;
    @Value("${age}")
    private Integer age;
    @Value("${content}")
    private String content;

    @RequestMapping(value = "/")
    public String hello() {
        return "Hello World!" + "性格:" + character + " 年齡:" + age + " 詳細信息爲:" + content;
    }
}
View Code

  5.3 將一個對象做爲單個屬性進行配置

    編寫一個實體類

package cn.xinagxu.girl02.entity;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private Integer id;
    private String name;
    private Integer age;

    public Student() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
View Code

    在配置文件中配置實體類的屬性值

      相似於給一個實體bean賦值

      

    在用到的地方引入這個實體類

      

package cn.xinagxu.girl02.controller;

import cn.xinagxu.girl02.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Controller
@ResponseBody
public class HelloController {

    @Value("${character}")
    private String character;
    @Value("${age}")
    private Integer age;
    @Value("${content}")
    private String content;

    @Autowired
    private Student student;

    @RequestMapping(value = "/")
    public String hello() {
//        return "Hello World!" + "性格:" + character + " 年齡:" + age + " 詳細信息爲:" + content;
        return student.toString();
    }
}
View Code

   5.4 坑:在工具類中如何獲取配置文件信息

    獲取方式不變,可是若是使用new去建立工具實例,那麼工具類中就不會獲取到相關的配置文件信息;必須將配置類被容器管理,而後在須要使用配置類的地方依賴注入便可;不然讀取到的配置信息所有都是null;參考博文  

package cn.xiangxu.redis_demo.common.uitls;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;

/**
 * @author 王楊帥
 * @create 2018-06-25 13:35
 * @desc jedis客戶端工具類
 **/
@Component
public class JedisClientUtil {

    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private Integer port;

    private final byte[] temp_lock = new byte[1];
    private Jedis jedis;

    public JedisClientUtil(){}

    public Jedis getRedisClient() {
        if (jedis == null) {
            synchronized (temp_lock) {
                if (jedis == null) {
                    System.out.println(host);
                    System.out.println(port);
                    jedis = new Jedis(host,port);
                }
            }
        }
        return jedis;
    }

}
redis工具類

  

package cn.xiangxu.redis_demo.web;

import cn.xiangxu.redis_demo.common.uitls.JedisClientUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @author 王楊帥
 * @create 2018-06-25 13:35
 * @desc Redis相關
 **/
@RestController
@RequestMapping(value = "/redis")
@Slf4j
public class RedisController {

    /**
     * 單例模式
     */
    @Test
    public void test01() {
        // 01 獲取Jedis客戶端【設置IP和端口】
        Jedis jedis = new Jedis("192.168.233.134", 6379);

        // 02 保存數據
        jedis.set("name", "王楊帥");

        // 03 獲取數據
        String value = jedis.get("name");
        System.out.println("獲取到的數據爲:" + value);

        String age = jedis.get("age");
        System.out.println("獲取到的年齡信息爲:" + age);


        // 04 釋放資源
        jedis.close();
    }

    /**
     * 使用鏈接池模式
     */
    @Test
    public void test02() {
        System.out.println("Hello Warrior");

        // 01 獲取鏈接池對象
        JedisPoolConfig config = new JedisPoolConfig();
        // 0101 最大鏈接數
        config.setMaxTotal(30);
        // 0102 最大空閒鏈接數
        config.setMaxIdle(10);

        // 02 獲取鏈接池
        JedisPool jedisPool = new JedisPool(config, "192.168.233.134", 6379);

        // 03 核心對象【獲取Jedis客戶端對象】
        Jedis jedis = null;
        try {
            // 0301 經過鏈接池獲取Jedis客戶端
            jedis = jedisPool.getResource();
            // 0302 設置數據
            jedis.set("name", "三少");
            // 0303 獲取數據
            String value = jedis.get("name");
            System.out.println(value);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
            if (jedisPool != null) {
                jedisPool.close();
            }
        }
    }

    @Autowired
    private JedisClientUtil jedisClientUtil;

    @GetMapping(value = "/connect")
    public void connect() {
//        JedisClientUtil jedisClientUtil = new JedisClientUtil();
        Jedis jedis = jedisClientUtil.getRedisClient();
    }

}
使用工具類的地方

 

 6 多環境配置

  

  注意:前面兩個配置文件中配置的東西是公用的,後面兩個中一個是開發環境,一個是生產環境

    

#server:
#  context-path: /girl
#  port: 9999

spring:
  profiles:
    active: prod


character: 外向
age: 24

content: "性格:${character}, 年齡:${age}"

student:
  id: 1
  age: 24
  naem: 三少
主環境配置
server:
  context-path: /girl
  port: 9999
開發環境配置
server:
  context-path: /girl
  port: 8888
生產環境配置

  6.1 同時在啓動兩個環境

    在IntelliJ IDEA中啓動主配置中指定的那個環境

    利用maven啓動項目,並指定運行環境

      java -jar 項目名.jar --spring.profiles.active=prod

      注意:運行前須要編譯項目而後進入到target文件夾中

    

7 自定義properties配置

  Bean注入詳解

  7.1 properties配置文件

    在properties配置文件中配置一個自定義配置,例如

xiangxu.security.browser.loginPage = /demo-signIn.html

  7.2 建立一個SecurityProperty對象

    該對象是用來保存properties配置文件中以 xiangxu.security開始的全部配置信息

    技巧01:須要在該實體類上標註 @ConfigurationProperties(prefix = "xiangxu.security") 註解來聲明該實體類是用來保存properties配置文件中以 xiangxu.security開始的全部配置信息

    技巧02:該對象中有一個名爲browser的實體屬性,該屬性是用來存放在properties文件中以browser開始的配置信息

    技巧03:在properties文件中xiangxu.security的配置信息屬性名必須和SecurityProperty對象的實例屬性名保持一致

    技巧04:若是給實體類的屬性設定了默認值後,若是在配置文件中沒有對應的配置就會使用屬性對應的默認值做爲默認配置

    

package com.example.wiremock.entity.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @author 王楊帥
 * @create 2018-05-13 13:45
 * @desc
 **/
@ConfigurationProperties(prefix = "xiangxu.security")
public class SecurityProperty {
    private BrowserProperty browser;

    public BrowserProperty getBrowser() {
        return browser;
    }

    public void setBrowser(BrowserProperty browser) {
        this.browser = browser;
    }
}
SecurityProperty.java

  7.3 建立 BrowserProperty 對象

    該對象是用來存放propertes文件中browser開始的配置信息

    技巧01:properties配置文件中browser後面的屬性名必須和實體類BrowserProperty的實例屬性名一致

     

package com.example.wiremock.entity.properties;

/**
 * @author 王楊帥
 * @create 2018-05-13 13:46
 * @desc
 **/
public class BrowserProperty {
    private String loginPage;

    public String getLoginPage() {
        return loginPage;
    }

    public void setLoginPage(String loginPage) {
        this.loginPage = loginPage;
    }
}
BrowserProperty.java

  7.4 SpringBoot配置類

    建立一個配置類,來讓咱們定義的實體類和properties配置文件中的配置信息對應起來;這樣咱們只須要依賴注入咱們建立的實體類SecurityProperty就能夠讀取到properties中的配置信息了

    

package com.example.wiremock.config;

import com.example.wiremock.entity.properties.SecurityProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableConfigurationProperties(SecurityProperty.class)
public class PropertiesConfig {


}
PropertiesConfig.java

  7.5 測試類

    項目啓動後依賴注入配置實體類後,就能夠經過依賴注入的對象去獲取到對應的propertes配置信息

package com.example.wiremock.controller;

import com.example.wiremock.entity.properties.SecurityProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @author 王楊帥
 * @create 2018-05-13 14:15
 * @desc
 **/
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class PropertiesTest {

    // 01 依賴注入配置實體類
    @Autowired
    private SecurityProperty securityProperty;

    @Test
    public void test01() {
        log.info(ReflectionToStringBuilder.toString(securityProperty, ToStringStyle.MULTI_LINE_STYLE));
        log.info(securityProperty.getBrowser().getLoginPage());
    }

}
PropertiesTest.java

 

·下面是個人公衆號二維碼,歡迎關注·

尋渝記

微信號:xyj_fury

相關文章
相關標籤/搜索