日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

idea构建springboot项目右边没有maven_写给新手看的 Spring Boot 入门学习指南

發(fā)布時(shí)間:2024/9/3 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idea构建springboot项目右边没有maven_写给新手看的 Spring Boot 入门学习指南 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是 Spring Boot ?

解釋一下:Spring Boot 可以構(gòu)建一切。Spring Boot 設(shè)計(jì)之初就是為了最少的配置,最快的速度來啟動(dòng)和運(yùn)行 Spring 項(xiàng)目。Spring Boot 使用特定的配置來構(gòu)建生產(chǎn)就緒型的項(xiàng)目。

Spring Boot 的特性:

  • 使用 Spring 項(xiàng)目引導(dǎo)頁面可以在幾秒構(gòu)建一個(gè)項(xiàng)目

  • 方便對外輸出各種形式的服務(wù),如 REST API、WebSocket、Web、Streaming、Tasks

  • 非常簡潔的安全策略集成

  • 支持關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫

  • 支持運(yùn)行期內(nèi)嵌容器,如 Tomcat、Jetty

  • 強(qiáng)大的開發(fā)包,支持熱啟動(dòng)

  • 自動(dòng)管理依賴

  • 自帶應(yīng)用監(jiān)控

  • 支持各種 IED,如 IntelliJ IDEA、NetBeans

Spring Boot 快速入門

構(gòu)建項(xiàng)目:

(1)訪問 http://start.spring.io/。

(2)選擇構(gòu)建工具 Maven Project、Spring Boot 版本 1.5.8 及一些工程基本信息,可參考下圖:

(3)單擊 Generate Project 按鈕并下載項(xiàng)目壓縮包。

(4)解壓后,單擊 Eclipse,Import | Existing Maven Projects | Next | 選擇解壓后的文件夾 | Finsh 命令,OK Done!

(5)如果使用的是 Idea,單擊 File | New | Model from Existing Source.. | 選擇解壓后的文件夾 | OK 命令, 選擇 Maven ,一路 Next,OK Done!

如果讀者使用的是 Idea 工具,也可以這樣:

(1)單擊 File | New | Project… 命令,彈出新建項(xiàng)目框。

(2)選擇 Spring Initializr 選項(xiàng),單擊 Next 按鈕,也會(huì)出現(xiàn)上述類似的配置界面,Idea 幫我們做了集成。

(3)填寫相關(guān)內(nèi)容后,單擊 Next 按鈕,選擇依賴的包再單擊 Next 按鈕,最后確定信息無誤單擊 Finish 按鈕。

對上面的配置做一個(gè)解釋:

  • 第一個(gè)選擇框選擇創(chuàng)建以 Maven 構(gòu)建項(xiàng)目,還是以 Gradle 構(gòu)建項(xiàng)目,這是兩種不同的構(gòu)建方式,其中 Gradel 配置內(nèi)容更簡潔一些,并且包含了 Maven 的使用,不過日常使用 Maven 居多。

  • 第二個(gè)選擇框選擇編程語言,現(xiàn)在支持 Java、Kotlin 和 Groovy。

  • 第三個(gè)選擇框選擇 Spring Boot 版本,可以看出 Spring Boot 2.0 已經(jīng)到了第五個(gè)里程碑了。在實(shí)際使用中,我們會(huì)優(yōu)先使用穩(wěn)定版本,1.0 的最新穩(wěn)定版本是 1.5.8,也是我們演示使用的版本。

下面就是項(xiàng)目的配置信息了。

  • Group:一般填寫公司域名,比如百度公司填 com.baidu,演示使用 com.neo。

  • Artifact:可以理解為項(xiàng)目的名稱,可以根據(jù)實(shí)際情況來填,本次演示填寫 helloWorld。

  • Dependencies:在這塊添加我們項(xiàng)目所依賴的 Spring Boot 組件,可以多選。本次選擇 Web、devtools 兩個(gè)模塊。

項(xiàng)目結(jié)構(gòu)介紹

如上圖所示,Spring Boot 的基礎(chǔ)結(jié)構(gòu)共三個(gè)文件:

  • src/main/java:程序開發(fā)以及主程序入口

  • src/main/resources:配置文件

  • src/test/java:測試程序

另外,Sping Boot 建議的目錄結(jié)果如下:

root package 結(jié)構(gòu):com.example.myproject

com.example.myproject 目錄下:

  • Application.java:建議放到根目錄下面,是項(xiàng)目的啟動(dòng)類,Spring Boot 項(xiàng)目只能有一個(gè) main 方法。

  • comm:目錄建議放置公共的類,如全局的配置文件、工具類等。

  • domain:目錄主要用于實(shí)體(Entity)與數(shù)據(jù)訪問層(Repository)。

  • repository:數(shù)據(jù)庫訪問層代碼。

  • service:該層主要是業(yè)務(wù)類代碼。

  • web:該層負(fù)責(zé)頁面訪問控制。

resources 目錄下:

  • static:目錄存放 Web 訪問的靜態(tài)資源,如 JS、CSS、圖片等。

  • templates:目錄存放頁面模板。

  • application.properties:項(xiàng)目的配置信息。

test 目錄存放單元測試的代碼;pom.xml 用于配置項(xiàng)目依賴包,以及其他配置。

采用默認(rèn)配置可以省去很多設(shè)置,當(dāng)然也可以根據(jù)自己的喜好來進(jìn)行更改。最后,啟動(dòng) Application main 方法,至此一個(gè) Java 項(xiàng)目搭建好了!

簡單 Web 開發(fā)

(1)可以在 Spring Initializr 上面添加,也可以手動(dòng)在 pom.xml 中添加:

pom.xml 文件中默認(rèn)有兩個(gè)模塊:

  • spring-boot-starter:核心模塊,包括自動(dòng)配置支持、日志和 YAML;

  • spring-boot-starter-test:測試模塊,包括 JUnit、Hamcrest、Mockito。

(2)編寫 controller 內(nèi)容:

@RestControllerpublic class HelloWorldController

{ @RequestMapping("/hello")
public String hello
{
return "Hello World"; }}

@RestController的意思就是 controller 里面的方法都以 json 格式輸出,不用再配置什么 jackjson 的了!

如果配置為@Controller就代表著輸出為頁面內(nèi)容。

(3)啟動(dòng)主程序,打開瀏覽器訪問 http://localhost:8080/hello,就可以看到以下內(nèi)容,是不是很簡單!

Hello World

(4)如果我們想傳入?yún)?shù)怎么辦?

@RestControllerpublic class HelloWorldController
{ @RequestMapping("/hello")
public String index(String name)
{
return "Hello World, " +name; }}

重新啟動(dòng)項(xiàng)目,訪問 http://localhost:8080/hello?name=neo,返回內(nèi)容如下:

Hello World,neo

經(jīng)過上一個(gè)測試發(fā)現(xiàn),修改 controller 內(nèi)相關(guān)代碼,就需要重新啟動(dòng)項(xiàng)目才能生效,這樣做很麻煩是不是,別著急。Spring Boot 提供了另外一個(gè)組件來解決。

熱部署

熱啟動(dòng)就需要用到我們在一開始引入的另外一個(gè)組件:devtools。它是 Spring Boot 提供的一組開發(fā)工具包,其中就包含我們需要的熱部署功能。但是在使用這個(gè)功能之前還需要再做一些配置。

(1)在 dependency 中添加 optional 屬性,并設(shè)置為 true:

(2)在 plugin 中配置另外一個(gè)屬性 fork,并且配置為 true:

OK,以上兩步配置完成,如果讀者使用的是 Eclipse,那么恭喜你大功告成了。

如果讀者使用的是 Idea 還需要做以下配置。

(3)配置 Idea

選擇 File-Settings-Compiler 勾選 Build project automatically,低版本 Idea 勾選make project automatically。

使用快捷鍵:CTRL + SHIFT + A輸入Registry找到選項(xiàng)compile.automake.allow.when.app.running勾選

全部配置完成后,Idea 就支持熱部署了,大家可以試著去改動(dòng)一下代碼就會(huì)發(fā)現(xiàn) Spring Boot 會(huì)自動(dòng)重新加載,再也不需要我們手動(dòng)點(diǎn)擊重新部署了。

為什么 Idea 需要多配置后面這一步呢,因?yàn)?Idea 默認(rèn)不是自動(dòng)編譯的,需要我們手動(dòng)去配置后才會(huì)自動(dòng)編譯,而熱部署依賴于項(xiàng)目的自動(dòng)編譯功能。

該模塊在完整的打包環(huán)境下運(yùn)行的時(shí)候會(huì)被禁用。如果使用 java -jar 啟動(dòng)應(yīng)用或者用一個(gè)特定的 classloader 啟動(dòng),它會(huì)認(rèn)為這是一個(gè)“生產(chǎn)環(huán)境”。

單元測試

單元測試在日常開發(fā)中是必不可少的,一個(gè)牛逼的程序員,單元測試寫得也是杠杠的。下面來看下 Spring Boot 對單元測試又做了哪些支持?

如果我們只想運(yùn)行一個(gè) hello World,只需要一個(gè)注解就可以。在 src/test 目錄下新建一個(gè) HelloTests 類,代碼如下:

public class HelloTest
{ @Test public void hello
{ System.out.println("hello world"); }}

單擊右鍵“運(yùn)行”按鈕,會(huì)發(fā)現(xiàn)控制臺輸出:hello world。僅僅只需要了一個(gè)注解。但是如果我們需要測試 web 層的請求呢?Spring Boot 也給出了支持。

以往我們在測試 web 請求的時(shí)候,需要手動(dòng)輸入相關(guān)參數(shù)在頁面測試查看效果,或者自己寫 post 請求。在 Spring Boot 中,Spring 給出了一個(gè)簡單的解決方案;使用 mockmvc 進(jìn)行 web 測試,mockmvc 內(nèi)置了很多工具類和方法,可以模擬 post、get 請求,并且判斷返回的結(jié)果是否正確等,也可以利用print打印執(zhí)行結(jié)果。

@SpringBootTest
public class HelloTest
{
private MockMvc mockMvc;
@Before
public void setUp t
hrows Exception
{ mockMvc = MockMvcBuilders.standaloneSetup(new HelloWorldController).build; }
@Test public void getHello
throws Exception
{ mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=小明").accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print); }}

在類的上面添加@SpringBootTest,系統(tǒng)會(huì)自動(dòng)加載 Spring Boot 容器。在日常測試中,我們就可以注入 bean 來做一些局部業(yè)務(wù)的測試。MockMvcRequestBuilders可以 post、get 請求,使用print方法會(huì)將請求和相應(yīng)的過程都打印出來,如下:

MockHttpServletRequest: HTTP Method = POST Request URI = /hello Parameters = {name=[neo]} Headers = {}Handler: Type = com.neo.helloWorld.web.HelloWorldController Method = public java.lang.String com.neo.helloWorld.web.HelloWorldController.hello(java.lang.String)...MockHttpServletResponse: Status = 200
Error message =
Headers = {Content-Type=[text/plain;charset=ISO-8859-1], Content-Length=[16]} Content type = text/plain;
charset=ISO-8859-1
Body = Hello World ,neo Forwarded URL =
Redirected URL =
Cookies =

從返回的Body = Hello World ,neo可以看出請求成功。

總結(jié)

使用 Spring Boot 可以非常方便、快速搭建項(xiàng)目,而不用關(guān)心框架之間的兼容性、適用版本等各種問題,我們想使用任何東西,僅僅添加一個(gè)配置就可以,所以使用 Sping Boot 非常適合構(gòu)建微服務(wù)。

建議大家使用 Idea 開發(fā) Spring Boot 項(xiàng)目,Eclipse 對 Spring Boot 項(xiàng)目支持并不好,并且使用 Eclipse 偶爾會(huì)出現(xiàn)一些詭異的問題,影響初學(xué)者的學(xué)習(xí)。

關(guān)于完整的學(xué)習(xí) Spring Boot 路徑,我寫了結(jié)構(gòu)更加清晰,知識點(diǎn)更加系統(tǒng)的課程。

總結(jié)

以上是生活随笔為你收集整理的idea构建springboot项目右边没有maven_写给新手看的 Spring Boot 入门学习指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。