欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jersey 整合 Spring Boot 博客分类: Java  

程序员文章站 2024-03-19 10:33:40
...

jersey 简介

       JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java注解来简化Web服务的客户端和服务端的开发和部署。 

 

RESTful Web 服务简介

    REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。

    REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务。通常,RESTful Web 服务应该定义以下方面:

 

  • Web 服务的基/根 URI,比如 http://host/<appcontext>/resources。
  • 支持 MIME 类型的响应数据,包括 JSON/XML/ATOM 等等。
  • 服务支持的操作集合(例如 POST、GET、PUT 或 DELETE)

下面开始整合

1、创建一个maven工程

创建过程自行百度

2、pom.xml配置:

 

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>
	<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-jersey</artifactId>
		</dependency>
	</dependencies>

 

 

3、创建JerseyConfig类:

 

import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.web.filter.RequestContextFilter;

public class JerseyConfig extends ResourceConfig {
    public JerseyConfig() {
       register(RequestContextFilter.class);
       //配置restful package.
       packages("com.services");
    }
}

 4、创建RestResource类:

 

该类可通过rest请求访问

 

package com.services;

import java.util.HashMap;
import java.util.Map;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.stereotype.Component;

@Path("/")
@Component
public class RestResource {
	
	@GET
	@Produces(MediaType.APPLICATION_JSON)
	@Path("/hello")
	public Map<String, Object> hello() {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("code", "1");
		map.put("codeMsg", "success");
		return map;
	}
	
}

 5、创建app启动类

 

import org.glassfish.jersey.servlet.ServletContainer;
import org.glassfish.jersey.servlet.ServletProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class App {
   
    @Bean
    public ServletRegistrationBean jerseyServlet() {
      ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(), "/rest/*");
       // our rest resources will be available in the path /rest/*
       registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, JerseyConfig.class.getName());
      
       return registration;	
    }
   
    public static void main(String[] args) {
       SpringApplication.run(App.class, args);
       
    }
}

 

 6、右击app运行访问

http://127.0.0.1:8080/rest/hello