zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

用Jersey构建RESTful服务7--Jersey+SQLServer+Hibernate4.3+Spring3.2

SQLServerrestful服务 -- 构建 jersey
2023-09-14 08:59:41 时间

1.根目录下下创建 Spring 的配置文件applicationContext.xml; 配置如下: ?xml version="1.0" encoding="UTF-8"?

 beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans

 http://www.springframework.org/schema/beans/spring-beans.xsd

 http://www.springframework.org/schema/context

 http://www.springframework.org/schema/context/spring-context.xsd"

 !-- 激活那些已经在g容器里注册过的bean -- context:annotation-config /context:annotation-config !-- 在容器中注入bean -- bean id="UserServiceImpl" / bean id="UserDaoImpl" / /beans 

2.在com.waylau.rest.service和com.waylau.rest.service.impl下分别增加 UserService 和 UserServiceImpl。

UserService.java

package com.waylau.rest.service;

import java.util.List;

import com.waylau.rest.bean.User;


import com.waylau.rest.dao.impl.UserDaoImpl; import com.waylau.rest.service.UserService; * User Service 接口实现 * @author waylau.com * 2014-7-25 */ public class UserServiceImpl implements UserService { @Autowired private UserDaoImpl userDaoImpl; public UserServiceImpl() { // TODO Auto-generated constructor stub @Override public User getUserById(String id) { return userDaoImpl.getUserById(id); @Override public boolean deleteUserById(String id) { return userDaoImpl.deleteUserById(id); @Override public boolean createUser(User user) { return userDaoImpl.createUser(user); @Override public boolean updateUser(User user) { return userDaoImpl.updateUser(user); @Override public List User getAllUsers() { return userDaoImpl.getAllUsers();

3.修改 UserResource.java

package com.waylau.rest.resources;

import java.util.ArrayList;

import java.util.List;

import java.util.logging.Logger;

import javax.ws.rs.Path;

import javax.ws.rs.Produces;

import javax.ws.rs.Consumes;

import javax.ws.rs.PathParam;

import javax.ws.rs.core.MediaType;

import javax.ws.rs.DELETE;

import javax.ws.rs.GET;

import javax.ws.rs.POST;

import javax.ws.rs.PUT;

import org.springframework.beans.factory.annotation.Autowired;

import com.waylau.rest.bean.User;

import com.waylau.rest.service.impl.UserServiceImpl;

 * 用户资源

 * @author waylau.com

 * 2014-7-26

 */ @Path("/users")

public class UserResource {

 private static final Logger LOGGER = Logger.getLogger(UserResource.class.getName());

 @Autowired private UserServiceImpl userServiceImpl;

 public UserResource() {

 LOGGER.fine("UserResource()");

 * 增加

 * @param user

 */ @POST @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})

 public void createUser(User user) {

 userServiceImpl.createUser(user);

 * 删除

 * @param id

 */ @DELETE @Path("{id}")

 public void deleteUser(@PathParam("id")String id){

 userServiceImpl.deleteUserById(id);

 * 修改

 * @param user

 */ @PUT @Consumes(MediaType.APPLICATION_XML)

 public void updateUser(User user){

 userServiceImpl.updateUser(user);

 * 根据id查询

 * @param id

 * @return

 */ @GET @Path("{id}")

 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})

 public User getUserById(@PathParam("id") String id){

 User u = userServiceImpl.getUserById(id);

 return u;

 * 查询所有

 * @return

 */ @GET @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})

 public List User getAllUsers(){ 

 List User users = new ArrayList User 

 users = userServiceImpl.getAllUsers();

 return users;

4.修改web.xml,插入

 module-name RestDemo /module-name listener listener-class org.springframework.web.context.ContextLoaderListener /listener-class /listener context-param param-name contextConfigLocation /param-name param-value classpath:applicationContext.xml /param-value /context-param 

1.先运行项目

2.运行UserClient.java测试,控制台输出如下

****增加用户addUser****

****查询所有getAllUsers****

[{"userId":"002","userName":"sdfs","age":"23"},{"userId":"003","userName":"sdfs","age":"23"},{"userId":"004","userName":"sdfs","age":"23"},{"userId":"005","userName":"sdfs","age":"23"},{"userId":"006","userName":"Susan","age":"21"},{"userId":"007","userName":"sdfs","age":"23"},{"userId":"ds","userName":"ds","age":"ds"}]

****修改用户updateUser****

****根据id查询用户****

006Susan33

****查询所有getAllUsers****

[{"userId":"002","userName":"sdfs","age":"23"},{"userId":"003","userName":"sdfs","age":"23"},{"userId":"004","userName":"sdfs","age":"23"},{"userId":"005","userName":"sdfs","age":"23"},{"userId":"006","userName":"Susan","age":"33"},{"userId":"007","userName":"sdfs","age":"23"},{"userId":"ds","userName":"ds","age":"ds"}]

****删除用户****

****查询所有getAllUsers****

[{"userId":"002","userName":"sdfs","age":"23"},{"userId":"003","userName":"sdfs","age":"23"},{"userId":"004","userName":"sdfs","age":"23"},{"userId":"005","userName":"sdfs","age":"23"},{"userId":"007","userName":"sdfs","age":"23"},{"userId":"ds","userName":"ds","age":"ds"}]

本章源码(含jar包):https://github.com/waylau/RestDemo/tree/master/jersey-demo7-sqlserver-hibernate-spring3


Go语言:RESTful API 服务,急速入门! REST即表述性状态传递(英文:Representational State Transfer,简称REST),它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性
16、springcloud整合Swagger2构建Restful服务的APIs 比如说代码改了,但是接口文档还没来得及修改等问题,而Swagger2则给我们提供了一套完美的解决方案,下面来看看Swagger2是如何来解决这个问题的。
杜万-Java reactive programming - Reactor 3 and Spring WebFlux 立即下载