1.建立項目
//帶main的是啟動入口
@SpringBootApplication //核心注解,主要用于開啟spring自動配置
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 固定的值-->
<modelVersion>4.0.0</modelVersion>
<!-- 目前工程的父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 目前工程JVA坐标-->
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 可以有可以無-->
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 架構起步依賴-->
<!-- web項目起步依賴-->
<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>
2.內建springmvc
代碼需要放在Application類所在的同級目錄或者下級目錄
@Controller //被Controller标記的類就是一個控制器,這個類中的方法,就是相應的動作。
public class IndexController {
//RequestMapping處理請求位址映射,用于類上,表示類中的所有響應請求的方法都是以該位址作為父路徑。
@RequestMapping(value = "/springboot/say")
//ResponseBody是作用在方法上的,将傳回的對象轉換為指定的格式之後,寫入到response對象的body區
public @ResponseBody String say(){
return "Hello springboot";
}
}
3.application.properties
ctrl+alt+l快捷鍵
@RequestMapping(value = "/mapvalue")
public @ResponseBody
Map<String, Object> mapvalue() { // Map<String, Object>以String為鍵,以Object為值。
Map<String, Object> map = new HashMap<String, Object>(); //建立Map對象,Object是所有類型的父類
map.put("message", "springboot"); //存儲key和value
return map;
}
#核心配置檔案
#設定Tomcat端口号
server.port=8081
#設定位址的上下文根,需要在端口号後加上這個才可以,如果不需要直接用/即可
server.servlet.context-path=/springboot
4.application.yml或者application.yaml(這兩個其實格式是一樣的,隻是字尾不一樣)
application.yml可以展示層級關系,友善閱讀,且值前面自動會加上一個空格
public String say(String message){
return "say:Hello springboot "+message;
}
//這種帶參數的寫法可以在位址欄輸入 ?+message=abc 就可以傳回相應的值
5.application.yaml和application.properties同時存在
優先級是使用application.properties的
删除鍵模式轉換,為啥覆寫了後面的字
光标變化成短線 ,删除鍵覆寫後面的字元。按下“删除鍵”+“insert”即可恢複。
6.多環境(開發,測試,生産)下核心配置檔案properties的使用
建立不同環境的配置檔案(application-dev.properties,application-test.properties,application-uat.properties,application-product.properties),比如測試環境application-test.properties裡的内容是
server.port=9090
server.servlet.context-path=/product
然後在主配置檔案裡application.properties指定使用的開發環境:
#激活使用的配置檔案
spring.profiles.active=dev
7.多環境(開發,測試,生産)下核心配置檔案yml的使用
和上面properties的配置一樣同理
8.擷取自定義的配置内容
在application.properties裡面websit=http://www.baidu.com
任何地方@Value(“${}”)從配置properties檔案中讀取相應的值可以使用。
@Value("${websit}")
private String websit;
public Object say(String message) {
return "網站:" + websit;
}
9.把自定義配置映射到對象
但是當參數變多的時候,通過@value操作就顯得臃腫。springboot提供了更加簡單的操作:那就是通過 @ConfigurationProperties(prefix = “school”)一次性讀取并映射到javabean。
prefix字首,用于識别properties檔案裡需要映射的内容
代碼如下:
在application.properties裡:(注意這種方式必須有字首school.)
school.websit=http://www.baidu.com
school.name=highschool
在包config下的School類裡:
@Component//把這個類給spring容器進行管理。然後就可以再其他的類裡注入。 @controller 控制層 @service 服務層 @repository 資料通路層相當于配置檔案中的。泛指各種元件,就是說當我們的類不屬于各種歸類的時候。
@ConfigurationProperties(prefix = "school")
public class School {
private String name;
private String websit;
//Getter和Setter方法作用:提供對某個字段設定與通路的兩個入口。點選右鍵,選擇generate,然後選擇Getter and Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWebsit() {
return websit;
}
public void setWebsit(String websit) {
this.websit = websit;
}
}
在控制層裡:
@Autowired
private School school;
@RequestMapping(value = "/say")
@ResponseBody
public Object say(String message) {
return "網站名字:" + school.getName()+",網站位址:" +school.getWebsit();
}
出現了一個小問題;
Spring Boot Configuration Annotation Processor not configured
解決辦法:
https://blog.csdn.net/liangjiabao5555/article/details/104062932 加一個依賴就行了
注意:
如果在核心配置檔案裡有中文資訊,會出現亂碼,一般除了注釋不建議出現中文,如果有,可以先轉成ascll碼
在settings裡的editor裡的file encodings裡的properties files裡的 transparent native-to-ascii conversion勾選上即可。
而且如果是從其他地方拷貝的配置檔案,需要把每一行後面的空格給去掉,不然解析會有問題。
10.springboot內建jsp
在和resources的同級目錄下,建立webapp檔案夾,然後在idea右上角搜尋框的旁邊有個設定的按鈕,點選選擇project structure,
中間的地方找到該檔案夾,然後再web resource diretory的地方找到這個檔案夾點選應用即可增加藍點變成web資源檔案夾。
<!-- 解析展示jsp頁面-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>