SpringBoot入門(IDEA篇)(二)


一、SpringBoot啟動的3種方式

  第一種:借助IDE工具直接啟動  run as

  第二種:mvn命令啟動

    1:打開命令行,進入到項目目錄中(我這里還是用上次建立的dog項目來操作)cd E:\Workspaces\Idea\dog  

    2:mvn spring-boot:run

  第三種:使用jar文件啟動

    1:在項目目錄下(即E:\Workspaces\Idea\dog)編譯項目

      mvn install

    2:進入target目錄下

      cd target/

    3:查看當前路徑下的所有文件和目錄

      dir ./

    4:找到項目對應的jar文件,我這里是 dog-0.0.1-SNAPSHOT.jar

      然后運行java命令:

      java -jar java -jar dog-0.0.1-SNAPSHOT.jar

二、SpringBoot的配置文件

  1、properties還是yml

  默認幫我們生成了resources目錄,我們的配置文件基本上在這個目錄下完善

  目錄下還默認提供了一個application.properties文件,我們可以在其中配置訪問端口和路徑

server.port=8081
server.servlet.context-path=/dog

    這里修改了默認端口為8081,並且修改了訪問路徑。所以我們不能再使用原來的 http://127.0.0.1:8080/hello

  來打招呼了,需要使用新的訪問地址  http://127.0.0.1:8081/dog/hello

  在SpringBoot種還提供了另外一種簡便的寫法,就是yml文件

server:
port: 8082
servlet:
context-path: /dog

  注意冒號后面需要有一個空格,來和配置的內容隔開

  2、多環境配置

    加入2個yml文件,分別配置不同的訪問端口,和不同的訪問路徑

    新建開發環境的配置:application-dev.yml文件 

server:
port: 8083
servlet:
context-path: /dev

    新建生產環境的配置:application-pro.yml文件

server:
port: 8084
servlet:
context-path: /pro

   修改application.yml文件  指定所要使用的環境的配置,這里我們指向開發環境

spring:
  profiles:
    active: dev

  注意:這里的前綴換成了spring,已經不再是server,訪問使用 http://127.0.0.1:8083/dev/hello

  3、多環境同時啟動

    這里使用上面介紹的第三種啟動方式 :java -jar的方式來啟動

    使用啟動命令時只需要加一些參數,就可以輕松指定我們要使用的配置環境

    第一步:啟動前先編譯 mvn (因為我們改動過項目了,不能再使用原來的jar文件啟動)

    第二步:java -jar dog-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

    第三步:新打開一個命令行窗口,進入項目的target目錄下,執行java -jar命令

        java -jar dog-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro

    第四步:測試 http://127.0.0.1:8083/dev/hello  http://127.0.0.1:8084/pro/hello都能訪問即成功

  4、其他配置

    a.項目中讀取配置中的某些無關的值

      這里我們在dev環境中進行操作,在application-dev.yml文件中加入一些需要讀取的值

      

 

 

      然后在前台拉取,這里使用@Value注解來拉取

      

    前端成功展示

      

 

   b.配置中使用配置

    yml文件中使用EL表達式

      

    controller中還是使用@Value拉取

      

  c.相關的屬性,可以封轉成對象

    第一步:在pom.xml中加入依賴

        <!--configuration的依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

    第二步:新建一個用來封裝屬性的方法,提供getter、setter方法,並且重寫toString()方法

     

package com.zmfx.hello;

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

@Component  //由於后面自動裝配@Autowired時能掃描到此類
@ConfigurationProperties(prefix = "dev")//指明了配置文件中前綴為 dev封裝成對象
public class Developer {
    private String name;//姓名
    private Integer age;//年齡
    private Integer 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;
    }

    public Integer getId() {
        return id;
    }

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

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

    第三步:在yml文件中添加屬性,我這里還是在開發環境application-dev.yml中添加

server:
  port: 8083
  servlet:
    context-path: /dev
pageSize: 20
devName: 紫陌飛雪

content: "pageSize:${pageSize},devName:${devName}"

dev:
  name: 紫陌飛雪
  age: 26
  id: 365

    第四步:編寫controller中的控制代碼、新加屬性和方法

  

//屬性封裝到對象中提取
    @Autowired
    private Developer developer;
    @RequestMapping(value = "/developer",method = RequestMethod.GET)
    public String showDeveloper(){
        return developer.toString();
    }

    第五步:在瀏覽器中輸入  http://127.0.0.1:8083/dev/developer 進行測試

 

三、SpringBoot模板(template)的使用

  首先來介紹一下@RestController

    它相當於  @Controller+@ResponseBody的簡寫。

    @ResponseBody的作用時把返回值回顯到頁面,默認解析成Json格式。不會走視圖解析器

    如果把@RestController換成@Controller,頁面會報500,提示你檢查視圖解析器。

  SpringBoot官方為我們提供了頁面顯示的模板 thymeleaf

  第一步:加入pom.xml的依賴

     <!--模板的依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

  第二步:在templates下編寫一個 index.html頁面

  

<h1>Hello SpringBoot!</h1>

  第三步:編寫controller層的代碼

//templates的展示
    @RequestMapping(value = {"/t","/temp","/template"} ,method = RequestMethod.GET)
    public String showIndexHtml(){
        return "index";
    }

   第四步:訪問   http://127.0.0.1:8083/dev/t 

            http://127.0.0.1:8083/dev/temp

          http://127.0.0.1:8083/dev/template

我們發現它的映射規則和在SpringMVC沒什么太大區別,只是不用自己去配置視圖解析器了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM