python庫(kù)之web網(wǎng)站開(kāi)發(fā)PPT今天剛剛發(fā)生的重大新聞
1.SpringBoot介紹
1.1.什么是SpringBoot
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其中“Boot”的意思就是“引導(dǎo)”,Spring Boot 并不是對(duì) Spring 功能上的增強(qiáng),而是提供了一種快速開(kāi)發(fā) Spring應(yīng)用的方式。
1.2.Spring Boot 特點(diǎn)
? 嵌入的 Tomcat,無(wú)需部署 WAR 文件
? Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),應(yīng)用無(wú)需打成 WAR 包 。
? 簡(jiǎn)化Maven配置
? Spring Boot 提供了一系列的“starter”來(lái)簡(jiǎn)化 Maven 配置。
? 自動(dòng)配置
? Spring Boot 提供了大量的自動(dòng)配置類,開(kāi)發(fā)人員不需要任何 xml 配置即可實(shí)現(xiàn) Spring 的所有配置
2.構(gòu)建 Spring Boot 項(xiàng)目
2.1.下載SpringBoot項(xiàng)目
1、訪問(wèn)http://start.spring.io/
2、選擇構(gòu)建工具M(jìn)aven Project、Spring Boot版本以及一些工程基本信息,點(diǎn)擊“GENERETE”下載項(xiàng)目壓縮包
? 參考下圖所示:
2.2.maven構(gòu)建SpringBoot項(xiàng)目
1、創(chuàng)建maven工程,不要使用骨架
2、填寫項(xiàng)目坐標(biāo)信息
3、設(shè)置項(xiàng)目保存位置
2.3.pom.xml
參考下載的springboot項(xiàng)目修改pom.xml
2.3.1.繼承springboot父工程
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent>
2.3.2.設(shè)置編碼格式
<!-- 項(xiàng)目源碼及編譯輸出的編碼 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2.3.3.添加啟動(dòng)器
<dependencies><!-- springboot的web啟動(dòng)器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
2.3.4.創(chuàng)建啟動(dòng)類
package com.by;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
2.4.SpringBoot 的 Starter
2.4.1.使用Spring框架的問(wèn)題?
-
依賴導(dǎo)入問(wèn)題:每個(gè)項(xiàng)目都需要來(lái)單獨(dú)維護(hù)自己所依賴的jar包,在項(xiàng)目中使用到什么功能就需要引入什么樣的依賴。手動(dòng)導(dǎo)入依賴容易出錯(cuò),且無(wú)法統(tǒng)一集中管理
-
配置繁瑣:在引入依賴之后需要做繁雜的配置,并且這些配置是每個(gè)項(xiàng)目來(lái)說(shuō)都是必要的,例如web.xml配置數(shù)據(jù)庫(kù)連接池配置、事務(wù)配置等等。這些配置重復(fù)且繁雜,在不同的項(xiàng)目中需要進(jìn)行多次重復(fù)開(kāi)發(fā),這在很大程度上降低了我們的開(kāi)發(fā)效率
而在SpringBoot出現(xiàn)之后,它為我們提供了一個(gè)強(qiáng)大的功能來(lái)解決上述的兩個(gè)痛點(diǎn),這就是SpringBoot的starter(啟動(dòng)器)。
2.4.2.Starter是什么?
Spring Boot通過(guò)將我們常用的功能場(chǎng)景抽取出來(lái),做成的一系列的啟動(dòng)器,我們只需要在項(xiàng)目中引入這些starter,相關(guān)的所有依賴就會(huì)全部被導(dǎo)入進(jìn)來(lái),并且我們可以拋棄繁雜的配置,例如:
? ? spring-boot-starter-web:支持全棧式的 web 開(kāi)發(fā),包括了 tomcat 和 springMVC 等 jar包
? ? spring-boot-starter-jpa:支持 spring 以 jpa方式操作數(shù)據(jù)庫(kù)的 jar 包的集合
? ? spring-boot-starter-redis:支持 redis 鍵值存儲(chǔ)的數(shù)據(jù)庫(kù)操作
在導(dǎo)入的starter之后,SpringBoot主要幫我們完成了兩件事情:
? ? 相關(guān)依賴的自動(dòng)導(dǎo)入
? ? 相關(guān)環(huán)境的自動(dòng)配置
2.4.2.Starters命名
-
官方啟動(dòng)器命名:
- 前綴:spring-boot-starter-
- 規(guī)范:spring-boot-starter-模塊名
- 舉例:spring-boot-starter-web、spring-boot-starter-jdbc
-
第三方啟動(dòng)器命名:
- 后綴:-spring-boot-starter
- 規(guī)范:模塊名-spring-boot-starter
- 舉例:mybatis-spring-boot-starter
3.Spring Boot入門HelloWorld
3.1.controller
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap;
import java.util.Map;@Controller
public class HelloWorld {@RequestMapping("/hello")@ResponseBodypublic Map<String, Object> showHelloWorld() {Map<String, Object> map = new HashMap<>();map.put("msg", "HelloWorld");return map;}
}
3.2.啟動(dòng)類存放位置
啟動(dòng)類存放的位置:
-
controller 同一個(gè)包下
-
controller 的上一級(jí)包中
3.3.自定義banner
1、banner生成網(wǎng)站:http://www.bootschool.net/ascii
2、將生成的banner.txt復(fù)制到resources目錄中
3、測(cè)試
4.Spring Boot的全局配置文件
SpringBoot項(xiàng)目使用一個(gè)全局的配置文件application.properties或者是application.yml,在resources目錄下或者類路徑下的/config下,一般我們放到resources下
4.1.properties配置文件
4.1.1.修改tomcat的端口為8088
server.port=8888
4.1.2.修改訪問(wèn)項(xiàng)目時(shí)的名字
server.servlet.context-path=/springboot
1.2.yml配置文件
yml是 Spring Boot 中新增的一種配置文件格式。特點(diǎn):具備天然的樹(shù)狀結(jié)構(gòu)
1.2.1.yml與 properties的區(qū)別
-
配置文件的擴(kuò)展名有變化
-
配置文件中的語(yǔ)法有變化:
? 1、在 yml 中使用“ :”進(jìn)行分割
? 3、在 yml中縮進(jìn)時(shí)不允許使用tab鍵,縮進(jìn)的空格數(shù)不重要,只要是左對(duì)齊的一列數(shù)據(jù),都是同一個(gè)層級(jí)
? 3、每個(gè)K的冒號(hào)后面一定要加一個(gè)空格
1.2.2.yml方式配置springboot
server:port: 8090servlet:context-path: /springboot
5.Spring Boot項(xiàng)目的兩種發(fā)布方式
5.1.方式1:通過(guò)jar包發(fā)布
步驟1:在pom中添加一個(gè)SpringBoot的構(gòu)建的插件
<build><plugins><plugin><groupId>org.springframework.boot</groupId><!--自動(dòng)檢測(cè)項(xiàng)目中的 main 函數(shù)--><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
步驟2:在maven視圖中,選擇“package”,在target中會(huì)產(chǎn)生xxx.jar包
步驟3:然后在cmd終端發(fā)布項(xiàng)目
java -jar xxx.jar
5.2.方式2:通過(guò)war包發(fā)布
步驟1:在pom.xml文件中將jar修改為war
<packaging>war</packaging>
步驟2:設(shè)置tomcat啟動(dòng)器依賴范圍
maven依賴范圍參考:資料/maven依賴作用范圍.png
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!--排除內(nèi)部的Tomcat--><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>
步驟3:設(shè)置war包的名字
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><warName>hello</warName></configuration></plugin>
步驟4:修改啟動(dòng)類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;@SpringBootApplication
public class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(Application.class);}public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}