詳解使用IntelliJ IDEA新建Java Web后端resfulAPI模板
初始化項(xiàng)目
打開IntelliJ IDEA,我的版本是Version 2018.1.4。點(diǎn)擊Create New Project。在左側(cè)的列表中選擇Maven。然后在右側(cè)勾選Create from archetype。
然后在右側(cè)的列表中選擇org.apache.maven.archetypes:maven-archetype-webapp。點(diǎn)擊next。
填寫GroupId和ArtifactId。GroupId定義了項(xiàng)目屬于哪個(gè)組織,例如,我們需要使用一個(gè)包,名字叫做fastjson,用戶在項(xiàng)目中返回json數(shù)據(jù)的,是阿里的開源框架,被不少企業(yè)使用,是一個(gè)極其優(yōu)秀的Json框架。它的groupId是com.alibaba,artifactId是fastjson。
簡單理解一下,拿Github舉個(gè)例子。GroupId就相當(dāng)于是你的用戶名,而ArtifactId就相當(dāng)于是你的具體某個(gè)項(xiàng)目的名稱,也是我們當(dāng)前的項(xiàng)目的根目錄名稱。例子如下。
GroupId: com.detectivehlh.test ArtifactId: testDemo
點(diǎn)擊next,下兩頁不用設(shè)置,直接點(diǎn)擊next。此時(shí)新建項(xiàng)目成功,右下角會(huì)彈出一個(gè)提示框,上面寫著Maven projects need to be imported.此時(shí)選擇Enable Auto-Import。就可以看到項(xiàng)目開始自動(dòng)的去加載依賴包了。加載完成之后,項(xiàng)目會(huì)多出一個(gè)src目錄。
引入jersey和servlet
打開根目錄下pom.xml文件,在dependencies標(biāo)簽中添加如下代碼,引入servlet。
<dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>2.22.2</version> </dependency>
打開/src/main/webapp/WEB_INF/web.xml。在web-app標(biāo)簽之間添加如下代碼。
<servlet> <servlet-name>JAX-RS Servlet</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.detectivehlh.test</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JAX-RS Servlet</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping>
新建項(xiàng)目目錄和文件
在/src/main目錄下新建java、resources目錄,java放項(xiàng)目java源代碼,resources放項(xiàng)目的靜態(tài)資源文件。
打開File中的Project Structure,或者使用快捷鍵,command + ;就可以快捷打開了。將剛剛創(chuàng)建的名為java目錄設(shè)置為Sources,resources設(shè)置為Resources。然后Apply。然后在java目錄下依次新建com.detectivehlh.test三個(gè)包,就是我們的GroupId.
然后在com.detectivehlh.test中新建Hello類。代碼如下。
package com.detectivehlh.test; import com.alibaba.fastjson.JSONObject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.List; @Path("/hello") public class Hello { @Path("get") @GET @Produces(MediaType.APPLICATION_JSON) public Response getStudent() { List<Student> lists = new ArrayList<Student>(); lists.add(new Student("1","mayun",23)); lists.add(new Student("2","mahuateng",24)); lists.add(new Student("3","zhouhongyi",25)); JSONObject json = new JSONObject(); return Response.status(Response.Status.OK).entity(json.toJSONString(lists)).build(); } }
同樣的地方新建Student類。代碼如下。
package com.detectivehlh.test; public class Student { private String id; private String name; private int age; public Student(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
引入fastjson
這個(gè)時(shí)候可以看到,Hello的class中有報(bào)錯(cuò)。是因?yàn)闆]有在pom.xml中沒有引入對fastjson的依賴。在根目錄下的pom.xml中添加如下依賴。
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.21</version> </dependency>
再回到Hello中就可以看到?jīng)]有錯(cuò)誤信息了。
配置Tomcat
選擇頂部菜單欄中的Run->Edit Configurations。點(diǎn)擊左側(cè)的+,選擇Tomcat Server->local。配置好Tomcat后,選擇Server旁邊的Deployment標(biāo)簽,點(diǎn)擊下方的+,選擇Artifact,選擇testDemo:war exploded。點(diǎn)擊Apply。然后點(diǎn)擊右上角的長得像播放鍵的按鈕,啟動(dòng)項(xiàng)目。
就可以看到會(huì)新建一個(gè)瀏覽器標(biāo)簽頁。顯示"Hello World!",然后改變?yōu)g覽器中的路由為我們寫的接口的路由,/api/hello/get。就可以看到返回的json數(shù)據(jù)了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解Java后端優(yōu)雅驗(yàn)證參數(shù)合法性
- java 后端生成pdf模板合并單元格表格的案例
- Java后端面試題最新整理
- Java后端Cookie實(shí)現(xiàn)(時(shí)間戳)代碼實(shí)例
- 微信小程序獲取手機(jī)號(hào),后端JAVA解密流程代碼
- 微信小程序后端(java)開發(fā)流程的詳細(xì)步驟
- 關(guān)于java后端的詳解
- Java后端產(chǎn)生驗(yàn)證碼后臺(tái)驗(yàn)證功能的實(shí)現(xiàn)代碼
- 一個(gè)Java程序猿眼中的前后端分離以及Vue.js入門(推薦)
- Java后端WebSocket的Tomcat實(shí)現(xiàn)
- JAVA后端應(yīng)該學(xué)什么技術(shù)
相關(guān)文章
Mybatis把返回結(jié)果封裝成map類型的實(shí)現(xiàn)
本文主要介紹了Mybatis把返回結(jié)果封裝成map類型的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03SpringBoot+WebSocket實(shí)現(xiàn)消息推送功能
WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。本文將通過SpringBoot集成WebSocket實(shí)現(xiàn)消息推送功能,感興趣的可以了解一下2022-08-08利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐
這篇文章主要給大家介紹了關(guān)于利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐,Mybatis-Plus可以很方便地處理JSON字段,在實(shí)體類中可以使用@JSONField注解來標(biāo)記JSON字段,需要的朋友可以參考下2024-07-07JAVA反射機(jī)制中g(shù)etClass和class對比分析
這篇文章主要介紹了JAVA反射機(jī)制中g(shù)etClass和class對比分析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11vscode搭建java開發(fā)環(huán)境的實(shí)現(xiàn)步驟
本文主要介紹了vscode搭建java開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03MyBatis中動(dòng)態(tài)SQL語句@Provider的用法
本文主要介紹了MyBatis中動(dòng)態(tài)SQL語句@Provider的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06