springboot快速開發(簡單web)
阿新 • • 發佈:2019-03-02
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)