您好,登錄后才能下訂單哦!
這篇“基于Maven怎么安裝SpringBoot”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“基于Maven怎么安裝SpringBoot”文章吧。
Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化 Spring 應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。Spring Boot 可以輕松創(chuàng)建一個(gè)基于 Spring 且獨(dú)立運(yùn)行的生產(chǎn)級(jí)應(yīng)用。
SpringBoot 的安裝有很多種方式,最簡(jiǎn)單的一種是直接將 spring-boot-*.jar 等文件添加到工程的 classpath 下,這種你就可以運(yùn)行并調(diào)試你的應(yīng)用了。如果是企業(yè)級(jí)應(yīng)用,推薦使用構(gòu)建工具來(lái)管理項(xiàng)目的依賴,比如:Maven 或者 Gradle 等。對(duì)于直接添加 classpath 的方式,這里不做多余的介紹,下面主要描述基于構(gòu)建工具的安裝指導(dǎo)。
Spring Boot 與 Apache Maven 3.2兼容。如果你還沒(méi)有安裝 Maven,可以按照 maven.apache.org 上的說(shuō)明進(jìn)行操作。
Spring Boot 依賴使用 org.springframework.boot 作為 groupId。通常情況下,你的 POM 文件會(huì)繼承 spring-boot-starter-parent 工程,然后再聲明一個(gè)或多個(gè) Starters 的依賴。Spring Boot 同時(shí)也提供了一個(gè)可選的Maven 插件用來(lái)生成可執(zhí)行的 Jar 包。
典型的 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> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <!-- 繼承 Spring Boot 的默認(rèn)值 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.RELEASE</version> </parent> <!-- 為 Web 應(yīng)用添加能用依賴 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- 打包成一個(gè)可執(zhí)行 jar 包 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
提示:
spring-boot-starter-parent 是使用 Spring Boot 的一種比較好的方式,但它并不適用于所有場(chǎng)景。有時(shí),你可能需要繼承一個(gè)不同的父級(jí) Pom,或者你不喜歡這種默認(rèn)的配置。你也可以通過(guò)聲明一個(gè) scope=import 的依賴來(lái)使用它:
<dependencyManagement> <dependencies> <dependency> <!-- 從 Spring Boot 導(dǎo)入依賴管理 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.3.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
相對(duì) Maven 龐大的 XML 配置,我更喜歡 Gradle 多一點(diǎn),不但簡(jiǎn)潔而且靈活性也好很多。Spring Boot 與 Gradle(2.9或以上)、Gradle 3兼容。如果你還沒(méi)有安裝 Gradle,你可以按照 www.gradle.org 上的操作說(shuō)明來(lái)進(jìn)行安裝。
典型的 build.gradle 文件:
plugins { id 'org.springframework.boot' version '1.5.3.RELEASE' id 'java' } jar { baseName = 'myproject' version = '0.0.1-SNAPSHOT' } repositories { jcenter() maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } } dependencies { compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test") }
創(chuàng)建一個(gè)簡(jiǎn)單的 Java 類如下:
import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
Example 類上的第一個(gè)注解 @RestController 是 @Controller 及 @ResponseBody 的組合,表明這是一個(gè)控制器,且所有響應(yīng)數(shù)據(jù)都會(huì)被序列化到響應(yīng)體里面返回。而方法上的 @RequestMapping 注解會(huì)為請(qǐng)求處理提供路由信息。這些注解都是 Spring 的,而不是 Spring Boot 特有的。
類上的第二個(gè)注解 @EnableAutoConfiguration 會(huì)告訴 Spring Boot 去通過(guò)依賴的 Jar 包配置 Spring 工程。因?yàn)?spring-boot-starter-web 里面包含有 Tomcat 及 Spring MVC,所以它會(huì)認(rèn)為這是一個(gè) Web 工程,并進(jìn)行相應(yīng)的 Spring 配置。
應(yīng)用的最后一部分是一個(gè) main 方法,它通過(guò)調(diào)用 SpringApplication 的 run 方法將應(yīng)用程序委托給 Spring Boot。SpringApplication 將引導(dǎo)我們的應(yīng)用程序啟動(dòng) Spring 及自動(dòng)配置的 Tomcat Web 服務(wù)。我們需要將 Example.class 作為一個(gè)參數(shù)傳遞給 run 方法來(lái)告訴 SpringApplication 它是主要的 Spring 組件。
運(yùn)行 main 方法后,即可以使用瀏覽器打開(kāi)地址 localhost:8080 會(huì)得到輸出:
Hello World!
一般的應(yīng)用都會(huì)使用 域名的反轉(zhuǎn) + 項(xiàng)目名 作為項(xiàng)目的統(tǒng)一包名前綴。如:com.qchery.funda。在 SpringBoot 的項(xiàng)目中,推薦使用如下布局:
com
+- qchery
+- funda
+- Application.java
|
+- entity
| +- Customer.java
|
+- dao
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
+- CustomerController.java
其中,Application.java 文件如下:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
一般來(lái)說(shuō),我們會(huì)將 @EnableAutoConfiguration 注解放置在 主類上,也就是上面結(jié)構(gòu)中的 Application.java。它隱式定義了包含某些搜索項(xiàng)的搜索包,例如,如果你正編寫(xiě)一個(gè) JPA 的應(yīng)用程序,那么帶 @EnableAutoConfiguration 注解的類將會(huì)被用來(lái)搜索帶有 @Entity 的類。
而 @ComponentScan 會(huì)用來(lái)自動(dòng)掃描相應(yīng)組件,由于 Application.java 是的根包名下,所以它不需要聲明 basePackage 去指定需要掃描的包,默認(rèn)為根包名,即:com.qchery.funda。
SpringBoot 同時(shí)支持 Java-based 配置及 XML 文件配置。但推薦使用 Java-based 形式的配置,如果現(xiàn)在的系統(tǒng)中已經(jīng)存在一些 XML 形式的配置,建議使用相同效果的 Java-based 配置進(jìn)行替換,你可以通過(guò)搜索 Enable* 來(lái)查找對(duì)應(yīng)的 Java-based 配置。
在 SpringBoot 工程里面,我們不需要把所有的配置放置到一個(gè)類文件里面。它的 @Import 注解可以幫助我們導(dǎo)入其它的配置類,如果想要導(dǎo)入 XML 形式的配置,可以使用 @ImportResource 注解。另外,還可以使用 @ComponentScan 注解去掃描所有帶有 @Configuration 注解的類。
當(dāng)你在某一個(gè)帶有 @Configuration 的類里加上 @EnableAutoConfiguration 或 @SpringBootApplication 注解時(shí),SpringBoot 會(huì)根據(jù)所添加的依賴包自動(dòng)完成項(xiàng)目配置。例如,如果你在類路徑下添加 HSQLDB 的包,但你沒(méi)有配置任何數(shù)據(jù)庫(kù)屬性,SpringBoot 會(huì)自動(dòng)配置一個(gè) In-Memory 數(shù)據(jù)庫(kù)。其中 @EnableAutoConfiguration 只能添加一個(gè)類上,建議將其加在主要的 @Configuration 類上。
自動(dòng)化配置并不是侵入式的,在任何地方你都可以通過(guò)自定義配置來(lái)替換它。例如,如果你添加自己的數(shù)據(jù)庫(kù)配置,那么默認(rèn)的嵌入式數(shù)據(jù)庫(kù)支持將會(huì)被退回。如果想要查看自動(dòng)化配置是否生效,可以在運(yùn)行程序時(shí),加上 –debug 參數(shù)進(jìn)行查看。
當(dāng)你發(fā)現(xiàn)自動(dòng)化配置不能按自己的意愿進(jìn)行工作的時(shí)候,可以通過(guò) @EnableAutoConfiguration 的 exclude 屬性來(lái)禁用掉它們。
import org.springframework.boot.autoconfigure.*; import org.springframework.boot.autoconfigure.jdbc.*; import org.springframework.context.annotation.*; @Configuration @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration { }
由于大多數(shù)情況下,@Configuration,@EnableAutoConfiguration 及 @ComponentScan 注解都是一起使用的。SpringBoot 提供了 @SpringBootApplication 這個(gè)更加方便的選擇,它等同于前三個(gè)注解。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // 等同于 @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
以上就是關(guān)于“基于Maven怎么安裝SpringBoot”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。