1. pom.xml添加依賴
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- jersey -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
</dependencies>
2.application.properties配置文件
server.port=8087
spring.application.name=jerseyDemo
3.項(xiàng)目結(jié)構(gòu)
Paste_Image.png
4.SpringBoot集成Jersey师坎,啟動(dòng)類照樣即可,新建配置類荤牍,注冊(cè)Jersey容器
@Configuration
@ApplicationPath("/rest")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(JerseyController.class);//返回json格式
register(JerseyControllerXml.class);//返回xml格式
//packages("com.vergilyn.demo.springboot.jersey"); // 通過packages注冊(cè)侯嘀。
}
}
5.Controller類
//默認(rèn)情況下,資源類的生命周期是per-request询张,也就是系統(tǒng)會(huì)為每個(gè)匹配資源類URI的請(qǐng)求創(chuàng)建一個(gè)實(shí)例孙乖,
//這樣的效率很低,可以對(duì)資源類使用@Singleton注解份氧,這樣在應(yīng)用范圍內(nèi)唯袄,只會(huì)創(chuàng)建資源類的一個(gè)實(shí)例
@Singleton
@Component
@RestController
@Path("/jersey")
public class JerseyController {
@GET
@Path("get")
//定義請(qǐng)求的媒體類型,如果不指定蜗帜,則容器默認(rèn)可接受任意媒體類型恋拷,容器負(fù)責(zé)確認(rèn)被調(diào)用的方法可接受HTTP請(qǐng)求的媒體類型,否則返回415 Unsupported Media Type
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
//定義響應(yīng)媒體類型钮糖,如果不指定梅掠,則容器默認(rèn)可接受任意媒體類型,容器負(fù)責(zé)確認(rèn)被調(diào)用的方法可返回HTTP請(qǐng)求可以接受媒體類型店归,否則返回406 Not Acceptable
@Produces(MediaType.APPLICATION_JSON)
public Map<String, String> getMessage() {
Map<String, String> map = new HashMap<String,String>();
map.put("Id", "100");
map.put("Name", "Jimmy");
return map;
}
@GET
@Path("/get/{param1}/{param2}")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON)
public String getMessageStr(@PathParam("param2")String userName,@DefaultValue("china")@QueryParam("address")String address) {
System.out.println(address+"-==============");
String str = "hello " + userName+"-"+address;
return str;
}
@POST
@Path("/post")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON)
public Map<String, String> postMessage() {
Map<String, String> map = new HashMap<String,String>();
map.put("Id", "101");
map.put("Name", "Lucy");
return map;
}
}
6.訪問:注意路徑
Paste_Image.png
http://localhost:8087/rest/jersey/get/jim/wuxi?address=jiangsu--注意參數(shù)
Paste_Image.png