1. 程式人生 > >springboot快速開發(簡單web)

springboot快速開發(簡單web)

bean custom file 優先級 rep debug depend connector desc

這是一個springboot基礎配置文件介紹的demo。只涉及到 控制層與前端的簡單交互,用於驗證代碼的暢通。

spring-boot 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> <!--springboot的父級依賴,提供了相關的Maven依賴,並省去相關依賴包的版本聲明--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</
version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.xiaoeyu</groupId> <artifactId>demo2</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo2</name> <description
>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <!--springboot使用的技術依賴--> <dependencies> <!--spring web需要的相關包:包括spring啟動bean,aop,core等等--> <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> <!--用於連接數據庫的一種,默認采用hibernate,我不會用,後面有mybatis的--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--添加數據庫驅動依賴,在spring-boot-dependencies中指定--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <!--springboot的編輯插件--> <build> <plugins> <!--將項目搭建成一個可以獨立運行的jar包,有內嵌的Tomcat--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

spring-boot配置文件解釋:

  在spring-boot中可以使用.properties與.yml兩種格式的配置文件,前者的優先級更高

  properties采用鍵值對的形式,yml采用 鍵:空格 值 的形式。yml的同一目錄下會統一表示。properties的前綴每個都要寫

以application.yml格式作為說明。從第一列開始 同一個目錄下的會歸結到同一列

#本文件是springboot的全局配置文件,入口類啟動時會自動加載本文件,同樣的名字properties格式優先級更高
server:
  servlet:
#    設置根路徑,訪問的時候localhost:端口/abc/
    context-path: /abc
spring:
  mvc:
#    後臺為時間的類型的參數,可以解析前臺傳送的yyyy-MM-dd類型的字符串,配置文件只能攔截一種
    date-format: yyyy-MM-dd
#    後臺返回時間類型的數據,把時間類型的數據轉為yyyy-MM-dd類型的字符串
  jackson:
    date-format: yyyy-MM-dd
  http:
    encoding:
      charset: utf-8
#spring.profiles.active:指定使用哪個環境配置文件。現在這個是主要的配置,如果沒有就從用下面dev對應的配置文件(application-xxx.yml)
#本文件的配置為主配置,有些配置:端口號  在開發與實際應用是是不一樣的8080,80需要分開設置。這個標簽用於指定使用哪種環境參數進行(在指定的配置文件中配置合適的參數)
#文件名有要求,與本文件名前部分一致 application-xxx.yml xxx與active後的一樣 profiles: active: dev

開發環境下的配置文件。application-dex.yml

#定義為開發環境配置文件
server:
  #  使用端口號
  port: 8888
logging:
  #  設置日誌文件輸出位置
  file: e:logs/spring-boot.log
  level:
#    設置指定位置的日誌輸出級別
    org.apache: debuge
    org.springframework.web: debuge
    org.springframework.boot.web: debuge
#數據源配置,與數據進行連接時的信息
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/bcs?characterEncoding=UTF-8
    username: root
    password:

啟動文件解釋

  用spring-boot創建的項目,會自動生成一個 項目名+Application的class文件,作為項目的入口類。

package com.xiaoeyu.demo2;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;

/*
項目的入口類。類名為: 項目名+Application
在運行其中的main方法時,Spring Boot會自動掃描入口類所在的同級包及其子包中的Bean,所以聲明Bean的類不應在入口類所在的包之外。
 */
@SpringBootApplication/*開啟springboot的自動配置,在項目啟動時自動加載*/
//項目啟動時加載的配置文件,application.properties默認加載,別的需要手動指定
//custom.properties是自定義的額配置文件,需要在這裏聲明,才會被加載到項目中生效
@PropertySource("custom.properties")
public class Demo2Application {
    public static void main(String[] args) {
        //run方法,啟動內置的Tomcat服務器
        SpringApplication.run(Demo2Application.class, args);
    }

}

配置文件傳值

通過配置文件給屬性(單個屬性)或者對象屬性(多個屬性)傳值,自己寫custom.properties給類中的屬性傳值

#在類中,可以通過@Value("${app.name}")獲取到下面的值,並註入給所修飾的屬性
app.name=123456
info.url=jdbc:mysql://localhost:3306
info.username=root
info.password=
info.driverClassName=com.mysql.jdbc.Driver
package com.xiaoeyu.demo2.controller;

import com.xiaoeyu.demo2.pojo.Info;
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;

@Controller
public class HepplController {
    @Value("${app.name}")//獲取配置文件對應app.name的值,單個屬性傳值
    private String appName;

    @Autowired//多個屬相傳值,根據Info對象的類上的註解進行匹配
    private Info info;

    @RequestMapping("/hello")
    @ResponseBody
    public String hello() {
        //檢測傳值
        System.out.println(appName);
        System.out.println(info.toString());
        return "hello";
    }

}

Info實體類,沒有特殊意義,僅僅作為傳參驗證

package com.xiaoeyu.demo2.pojo;

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

/**
 * 通過配置文件給屬性賦值
 */
//與Controller,Service,Repository一樣的功能,Component語義更廣,三個都可以用這個代替。被修飾的類,在spring啟動過程中會被實例化
@Component
//在入口類上,添加了啟動時加載的配置文件,把該配置文件中以info開都與屬性對應的鍵的值傳遞給本類中的屬性
@ConfigurationProperties(prefix = "info")
public class Info {
    private String url;
    private String username;
    private String password;
    private String driverClassName;
//set,get,tostring方法省略
}

springboot快速開發(簡單web)