一、前言
對於android開發人員經常需要一個測試的介面來進行網路請求的測試,每次都需要自己上網查詢合適的介面。對於開發者來說太浪費自己的寶貴時間了。基於此 一直想做一個屬於自己管控伺服器。
二、搭建環境介紹
1、開發工具: IntelliJ IDEA 2017.1.5
選擇 Ultimate(最終)的版本
下載地址
2、伺服器框架:
1、Jersey:java中的restful web服務的框架
2、guava:java封裝的
3、Hibernate:處理資料庫與物件關係的對映框架
3、環境
mySQL、Tomcat、java8
三、搭建步驟
1、通過 選單 file ---> new --->project
2、選擇java 和web 點選 下一步
4、完成之後工程
5、 接下來就是配置 Tomcat了
6、在build.gradle檔案中dependencies 新增jersey \ Gson \ Guava
compile 'com.google.code.gson:gson:2.8.0'
//java 類的封裝 包比較大
compile 'com.google.guava:guava:21.0'
//jersey restful 進行介面請求
compile 'org.glassfish.jersey.core:jersey-client:2.26-b03'
compile 'org.glassfish.jersey.core:jersey-server:2.26-b03'
compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.26-b03'
//Gson 解析庫
compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.26-b03'
//資料庫操作框架 先加上
// https://mvnrepository.com/artifact/org.hibernate/hibernate-core
compile 'org.hibernate:hibernate-core:5.2.9.Final'
// https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager
compile 'org.hibernate:hibernate-entitymanager:5.2.9.Final'
// https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0
compile 'org.hibernate:hibernate-c3p0:5.2.9.Final'
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'
複製程式碼
就像這樣 -.-||
7、在webapp 資料夾下建立WEB-INF \ web.xml 檔案
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>Jersey</display-name>
<servlet>
<servlet-name>IDoubleApiServlet</servlet-name>
<!--容器-->
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<!--對映的包名,用於搜尋處理類-->
<param-value>net.doubelman.web.service</param-value>
</init-param>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>net.doubelman.web.Application</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--對映-->
<servlet-mapping>
<servlet-name>IDoubleApiServlet</servlet-name>
<!--訪問路徑-->
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
複製程式碼
8、對映建立:
包:net.doubelman.web
檔案:Application
資料夾:service
注意建立順序!
AccountService 內容:
package net.doubelman.web.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
/**
* Created by fmm on 2018/3/3.
*/
@Path("/account")
public class AccountService {
@GET
@Path("/login")
public String login(){
return "Hello tom !";
}
}
複製程式碼
Application內容:
package net.doubelman.web;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import net.doubelman.web.service.AccountService;
import org.glassfish.jersey.server.ResourceConfig;
import java.util.logging.Logger;
/**
* Created by fmm on 2018/3/3.
*/
public class Application extends ResourceConfig {
public Application() {
//新增一個掃描的服務包
packages(AccountService.class.getPackage().getName());
//註冊Jackson 解析器
register(JacksonJsonProvider.class);
//註冊日誌 Logger
register(Logger.class);
}
}
複製程式碼
至此一個基本的restful 伺服器基本搭建完成了
四、測試搭建結果
點選執行按鈕
在瀏覽器中輸入:http://localhost:8080/api/account/login
執行結果:
調介面成功 哈哈!
但是 搞了半天,說好的返回json呢!!別急 接著看!
package net.doubelman.web.service;
import com.google.gson.Gson;
import net.doubelman.web.Bean.Student;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
/**
* Created by fmm on 2018/3/3.
*/
@Path("/account")
public class AccountService {
@GET
@Path("/login")
public String login(){
//自己建立Student類哈 不要懶
Student student = new Student();
student.setAge(18);
student.setId("20180303");
student.setName("Tom");
//臨時的哈 正式的可不能這麼幹!
Gson gson = new Gson();
String stuStr = gson.toJson(student);
return stuStr;
}
}
最終的目的:
複製程式碼
好了基本的伺服器的搭建就完成了!
當然這這是初步的搭建
例如:如何統一處理返回Json資料、資料庫連線、新增資料庫、建立資料表等功能還都未實現, 以後有機會吧。
最起碼以後想使用介面Api 可以自己搞了哈!