SpringBoot之旅開啓
OneDay
簡言
springBoot剛開始接觸的第一印象是高大尚,爲什麼?接觸新技術嘛,自然會有那種高不可攀的感覺,當初學習spring整合的時候,各種繁瑣的配置文件,配置出錯,滿盤皆輸,畢竟和spring掛鉤,多多少少還有一些陰影存在,吐槽結束,迴歸正題!
前提概要
–
- springboot啓動方式
- springboot相關注解
- springboot配置文件
- springboot案例
初期
一、maven配置
- spring-boot-starter-parent : springboot核心jar包
- spring-boot-starter-web : springboot提供web支持
- spring-boot-starter-test : springboot提供單元測試
- spirng-boot-configuration-processor : springboot配置處理核心jar包
- spring-boot-maven-plugin : springboot-maven插件
二、springboot啓動方式
- springboot程序編寫完成,在指定的main方法中,Run,默認端口號8080
- cmd操作,進入springboot工程目錄下(包含pom.xml文件的目錄),用maven指令打開,mvn spring-boot:run
- -java-jar方式打開 – 待更新
三、springboot相關注解
@Runwith : 測試運行器 -
可以指定相關的測試器進行單元測試。Ps:JUnit爲單元測試提供了一個默認的測試運行器BlockJUnit4ClassRunner,但是沒有限制必須使用默認的運行器。
— springRunner.Class指spring提供的Junit測試類。
@springBootTest :
對於springboot不同方式的請求測試,可以通過其註解進行單元測試,配合@Runwith註解。
@springBootApplication :
springboot程序啓動入口。springboot爲三大註解@Configuration,@EnableAutoConfiguration,@ComponentScan綜合的統一註解。等同於@SpringBootApplication
= (默認屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan。
@ConfigurationProperties(prefix=” “) :
初期的時候,我們將一些默認初始化的參數存放到springboot的配置文件中,進行初始化賦值並依次去調用,自然這樣的操作十分繁瑣,對於代碼的維護和更新十分不便,爲此springboot提供其註解,將默認參數映射到指定的實體類中,我們只需要調用其實體類,就可以對實體類中相關的變量進行操作,大大提高了代碼的維護型。
@Value(“${ }”) :
調用配置文件初始化賦值的變量
四、spirnboot配置文件
springboot配置文件專用的後綴名爲yml,其配置格式易簡約,具有觀賞性。當然第一天所學,
把用到的配置信息陳列一下:
application.yml
- 指定訪問yml文件 - application-prod.yml
spring:
profiles:
active: prod
application-prod.yml
- 可以在配置文件中,自定義初始化值
girl:
cupsize: B
girlname: xinyan
age: 18
五、springBoot案例
工程目錄
1. maven導入
介紹
- springBoot 版本 1.5.6
- spring-boot-starter-thymeleaf : 模版引擎核心架包
- spring-boot-starter-data-jpa : springboot提供JPA的核心架包
- spring-boot-starter-aop : springboot提供aop的核心架包
- mysql-connector-java : mysql數據庫連接的核心架包
<?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>org.maven.springboot</groupId>
<artifactId>springBootDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.6.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.6.RELEASE</version>
</plugin>
</plugins>
</build>
</project>
2. 導入
介紹
- HellowController.java
- C層的相關接口,對自定義變量,不同形式傳參進行測試
package org.maven.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class HellowController {
@Autowired
private org.maven.springboot.pojo.girlProperties girlProperties;
/*----------------------------------- 自定義參數使用 -------------------------------------*/
// @Value("${cupsize}")
// private String cupSize;
// @Value("${girlname}")
// private String girlname;
// @Value("${age}")
// private int age;
@RequestMapping(value = "hello",method = RequestMethod.GET)
public String HelloSay(){
return girlProperties.getCupsize();
}
/*----------------------------------- 兩種不同形式的傳參 -------------------------------------*/
/**
* PathVariable
* @param id int
* @return String
*/
@RequestMapping(value = "say/{id}/hello",method = RequestMethod.GET)
public int demoOne(@PathVariable Integer id){
return id;
}
/**
* RequestParam
* required : 是否需要傳參
* defaultValue : 參數默認值
* @param id int
* @return String
*/
@RequestMapping(value = "say/hello",method = RequestMethod.GET)
public String demoTwo(@RequestParam(value = "id",required = false,defaultValue = "0") Integer id){
return girlProperties.getGirlname();
}
}
3.GirlApplication.java
介紹
- GirlApplication.java
- springboot啓動入口
package org.maven.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GirlApplication {
public static void main(String[] args){
SpringApplication.run(GirlApplication.class,args);
}
}
4.實體類girlProperties
介紹
@Component 依賴注入
@ConfigurationProperties(prefix = “girl”) 方便操作實體類中的相關變量
package org.maven.springboot.pojo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "girl")
public class girlProperties {
private String cupsize;
private String girlname;
private int age;
public String getCupsize() {
return cupsize;
}
public void setCupsize(String cupsize) {
this.cupsize = cupsize;
}
public String getGirlname() {
return girlname;
}
public void setGirlname(String girlname) {
this.girlname = girlname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
5.yml配置文件
介紹
1.application.yml
spring:
profiles:
active: prod
2.application-prod.yml
server:
port: 8081
context-path: /demo
girl:
cupsize: F
girlname: xinyan
age: 18
以上實例爲springboot的入門級demo,默認端口+地址:localhost:8081/demo/{自定義url接口},後續會更新springboot + mysql + JPA 的 相關文章….. 上傳的工程目錄,有些沒有涉及到的是後續文章中,JPA實現數據庫操作,及AOP的探索。學習之路,互利共勉,Boot小白有不足之處,希望大家多多指出,一起學習!
未完待續