SpringBoot整合jersey的示例代码

 更新时间:2017年09月27日 15:05:28   作者:Angela_Feng  
本篇文章主要介绍了SpringBoot整合jersey的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

这篇文章主要从以下几个方面来介绍。简单介绍下jersey,springboot,重点介绍如何整合springboot与jersey。

  • 什么是jersey
  • 什么是springboot
  • 为什么要使用springboot+jersey
  • 如何整合springboot与jersey

什么是jersey

阅读官方文档请点击:jsersey。RESTful Web Services in Java即java中的一种restful框架。jersey使用了JAX-RS规范来约束API的开发。既然jersey是基于restful风格的框架,那么什么是restful呢,主要有以下几点:

  • 在rest认为,一切都可以被称为资源。
  • 每个资源都由uri标识。要访问这个资源,必须通过对应的uri去访问。
  • 访问资源使用POST,GET,PUT,DELETE。POST为新增接口,GET为获取接口,PUT为修改接口,DELETE为删除接口。
  • 通过XML/JSON去通信
  • 每次请求都是独立的。

什么是springboot

简单介绍一下,Springboot是由spring衍生的一个框架,boot是轻量的意思,即轻量级的spring。Springboot继承了spring的特性,但是呢,觉得spring太繁琐,于是springboot就简化了spring的配置,不需要写复杂的配置文件就可以实现spring原有的功能特点。只需要在pom.xml中引入依赖就能实现各种模块和技术的整合。

为什么要使用springboot+jersey

如果要实现rest,jersey是一个很不错的选择。springboot是java中一个轻量级的框架,能简化配置,不复杂且功能齐全,因此结合起来使用,也是一个不错的选择。

如何整合springboot与jersey

1.创建maven项目
2.添加springboot配置。

(1)在pom.xml中添加springboot父依赖

  <!-- Spring Boot 父依赖 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
  </parent>

(2)在pom.xml中添加springbootweb依赖和junit单元测试依赖(如不使用单元测试,可不加),引入依赖后在控制台执行命令 mvn clean install

  <dependencies>
    <!-- Spring Boot web依赖 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
  </dependencies>

(3)创建Springboot入口:Application.java,此时一个springboot的maven项目已经创建成功,执行main函数就可以启动项目。(是不是确实很轻量级..?)

package com.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Created by Angela on 2017/4/20.
 */
@SpringBootApplication
public class Application {
  public static void main(String[] args){
    //springboot 入口
    SpringApplication.run(Application.class,args);
  }
}

(4)添加jersey依赖,在pom.xml中添加依赖,在控制台执行命令mvn install

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jersey</artifactId>
</dependency>

(5)创建jersey配置文件

package com.demo.config.jersey;


import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;

/**
 * Created by Angela on 2017/4/20.
 */
@Component
public class JerseyConfig extends ResourceConfig {

  public JerseyConfig() {
    //构造函数,在这里注册需要使用的内容,(过滤器,拦截器,API等)
  }
}

此时,基于jersey的springboot项目已经搭建成功。我们写demo来验证一下。

(6)基于jersey的api使用

配置文件:

创建项目的配置文件application.yml,指定name为local,端口号为8081,如下:

spring:
name: local
server:
  port: 8081

资源,即API,这里以get方法为例:

package com.demo.web;

import com.demo.model.City;
import org.springframework.stereotype.Component;

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

/**
 * Created by Angela on 2017/4/20.
 */
@Component
@Path("/demo")
public class Demo {

  //path注解指定路径,get注解指定访问方式,produces注解指定了返回值类型,这里返回JSON
  @Path("/city")
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  public City get(){
    City city = new City();
    city.setId(1L);
    city.setCityName("beijing");
    city.setCityCode("001");
    System.out.println(city.toString());
    return city;
  }



}

jersey配置(有两种注册方式,注册类,注册包):

package com.demo.config.jersey;


import com.demo.web.Demo;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;

/**
 * Created by Angela on 2017/4/20.
 */
@Component
public class JerseyConfig extends ResourceConfig {

  public JerseyConfig() {
     //注册类的方式
//    register(Demo.class);

    //注册包的方式
    packages("com.demo.web");
  }
}

这里有个小坑。项目打为jar包启动时,不能使用包注册的方式,否则会报FileNotFound异常。

此时,demo已经完成,我们可以通过浏览器或其他工具访问接口,访问路径:http://localhost:8081/demo/city,返回JSON字符串:{“id”:1,”cityName”:”beijing”,”cityCode”:”001”}。

项目代码地址:https://github.com/fengqing0216/learning.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • FF浏览器和IE下载文件乱码问题的解决方法

    FF浏览器和IE下载文件乱码问题的解决方法

    大家可以看到如下截图,下载文件出现了乱码,在其他浏览器(IE,Chrome....)上没有出现这个问题,解决方法很简单,遇到类似问题的朋友可以了解下哦
    2013-08-08
  • SpringBoot3整合Nacos V2.3.2的详细过程

    SpringBoot3整合Nacos V2.3.2的详细过程

    本文介绍了如何在 Spring Boot 3.2.x 项目中整合 Nacos 2.3.2,包括依赖配置、Nacos 服务发现与动态配置的配置方法,通过整合 Nacos,Spring Boot 应用可以实现高效的服务发现、动态配置管理以及分布式系统中的灵活扩展,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll 错误的解决方法

    启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll

    这篇文章主要介绍了有时候,新电脑上回碰到打开Eclipse时,弹出提示“Failed to load the JNI shared library jvm.dll”错误,这里给大家分享解决方案
    2016-08-08
  • Mybatis不启动项目直接测试Mapper的实现方法

    Mybatis不启动项目直接测试Mapper的实现方法

    在项目开发中,测试单个Mybatis Mapper方法通常需要启动整个SpringBoot项目,消耗大量时间,本文介绍通过Main方法和Mybatis配置类,快速测试Mapper功能,无需启动整个项目,这方法使用AnnotationConfigApplicationContext容器
    2024-09-09
  • 滴滴二面之Kafka如何读写副本消息的

    滴滴二面之Kafka如何读写副本消息的

    这篇文章主要给大家介绍了关于滴滴二面之Kafka如何读写副本消息的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Java编程在方法中哪些时候需要参数

    Java编程在方法中哪些时候需要参数

    这篇文章主要介绍了Java编程在方法中哪些时候需要参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring的@Scheduled 如何动态更新cron表达式

    Spring的@Scheduled 如何动态更新cron表达式

    这篇文章主要介绍了Spring的@Scheduled 如何动态更新cron表达式的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • RestTemplate设置超时时间及返回状态码非200处理

    RestTemplate设置超时时间及返回状态码非200处理

    这篇文章主要为大家介绍了RestTemplate设置超时时间及返回状态码非200处理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Java导出txt文件的方法

    Java导出txt文件的方法

    这篇文章主要介绍了Java导出txt文件的方法,实例分析了两种java导出txt文本文件的使用技巧,需要的朋友可以参考下
    2015-05-05
  • java通过cglib动态生成实体bean的操作

    java通过cglib动态生成实体bean的操作

    这篇文章主要介绍了java通过cglib动态生成实体bean的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论