Spring boot整合Jersey
来源:互联网 发布:淘宝源 编辑:程序博客网 时间:2024/05/19 16:34
一:介绍
Jersey是jax-rs实现。jax-rs是基于rest的web服务的Java API。Jersey RESTful web服务是SUN Microsystems提供的开放源码。用Jersey 2来创建RESTful web服务。我们将在这里讨论jax-rs API,它将用于创建Jersey RESTful web服务和Jersey客户端,然后我们将为Jersey RESTful web服务和Jersey客户端创建演示应用程序。我们将使用JPA和Hibernate执行CRUD操作。
二: 新建项目
1: jax-rs API来创建Jersey REST web 找到javax.ws。用于处理HTTP方法的rs API。
@GET:用@GET注释的方法对HTTP GET方法进行响应。
@POST:用@POST注释的方法对HTTP POST方法进行响应。
@PUT:用@PUT注释的方法对HTTP PUT方法进行响应。
@DELETE:带@DELETE的方法对HTTP DELETE方法进行响应。
@HEAD:用@HEAD注释的方法对HTTP HEAD方法进行响应。
:2: 新建项目为eglsc-Jersey如图:
三: 创建Maven文件
找到本例中使用的Maven文件。
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.eglsc</groupId> <artifactId>eglsc-jersey</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.5.RELEASE</version> </parent> <properties> <java.version>1.7</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jersey</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.24</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>com.github.xphsc</groupId> <artifactId>eglsc-helper</artifactId> <version>1.2.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
四 代码的具体实现找到Spring boot启动器的描述。
spring-boot-starter-parent:父项目POM用于依赖关系管理。
spring-boot-starter-web::构建web、REST应用程序的启动器。它使用tomcat服务器作为默认的嵌入式服务器。
Spring-stardata-data JPA:使用hibernate的Spring数据JPA启动器。
spring-boot-starter-jersey::jersey的rest式web服务的启动器。
spring-boot-devtools:它提供开发工具。这些工具在应用程序开发模式中很有帮助。开发人员工具的一个特性是自动重启服务器,以实现代码的任何更改。
spring-boot-maven-plugin:它被用来创建应用程序的可执行JAR。
2 :创建jersey 配置项
javaconfig
@Configuration@ComponentScan({"com.eglsc"})public class JerseyConfig extends ResourceConfig { public JerseyConfig() { register(RequestContextFilter.class); packages("com.eglsc"); register(JacksonFeature.class); register(RequestContextFilter.class); register(LoggingFilter.class); register(SpringComponentProvider.class); }}3。创建application.properties
在Spring boot中,为了配置与数据库相关的属性、Hibernate和日志,我们需要使用application.properties。我们正在使用JPA规范的Hibernate实现。
druid.url=jdbc:mysql://localhost:3306/eglsc-jerseydruid.driver-class=com.mysql.jdbc.Driverdruid.username=rootdruid.password=rootdruid.initial-size=1druid.min-idle=1druid.max-active=20druid.test-on-borrow=truelogging.level.org.hibernate.SQL=INFOlogging.level.org.hibernate.type.descriptor.sql.BasicBinder=INFOlogging.level.com.concretepage= INFO
1:新建model 对象类
@Entity@Table(name="sys_user")@Datapublic class User implements Serializable { @Id private Integer id; private String username; private String password;}2:新建 dao层操作类
public interface UserDao extends JpaRepository<User,Integer> {}3:新建controller
@Path("/user")@Transactional@Component@Slf4jpublic class UserController { @Autowired private UserDao userDao; @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public Response findUserByid(@PathParam("id")Integer id){ User user= userDao.findOne(id); return Response.ok(user).build(); } @GET @Path("/") @Produces(MediaType.APPLICATION_JSON) public Response findUser(){ List<User> userlist= userDao.findAll(); return Response.ok(userlist).build(); } @POST @Path("/add") @Consumes(MediaType.APPLICATION_JSON) public Response addUser(User user) { User us= userDao.save(user); if (us==null) { log.info("user already exits."); return Response.status(Response.Status.CONFLICT).build(); } return Response.created(URI.create("/user/" + us.getId())).build(); } @PUT @Path("/update") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response updateArticle(User user) { userDao.save(user); return Response.ok(user).build(); } @DELETE @Path("/{id}") @Consumes(MediaType.APPLICATION_JSON) public Response deleteArticle(@PathParam("id") Integer id) { userDao.delete(id); return Response.noContent().build(); }}
4:spring boot启动类@SpringBootApplicationpublic class Application { protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); }}五: 测试@RunWith(SpringRunner.class)@SpringBootTest(classes = Application.class)@Slf4jpublic class UserTest { @Test public void getUser() { Client client = ClientBuilder.newClient(); WebTarget base = client.target("http://localhost:8083/"); WebTarget details = base.path("/user"); List<User> userlist = details.request(MediaType.APPLICATION_JSON).get(new GenericType<List<User>>() { }); log.info("list:"+userlist); client.close();}
}
- Spring boot整合Jersey
- spring boot 整合 Jersey
- spring-boot系列——整合jersey
- spring boot整合Jersey时无法访问静态资源路径解决办法
- Spring Boot + Jersey
- Spring+Hibernate+Jersey整合
- Spring+Hibernate+Jersey整合
- Jersey+Spring+Hibernate整合
- Spring 完美整合 Jersey
- spring boot 添加jersey框架
- Jersey+Spring+Maven整合demo
- 94.Spring Boot集成Jersey【从零开始学Spring Boot】
- Spring+Hibernate+Jersey整合<转>
- jersey实现还要整合在spring
- jersey加spring加mybatis整合
- jersey加spring加mybatis整合
- spring boot 整合Freemarker
- Spring Boot整合MyBatis
- zookeeper的常用命令
- web项目中过滤器不对某些指定文件进行过滤
- Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别
- 测试
- 关于转换编码问题
- Spring boot整合Jersey
- HDU 4745-Two Rabbits(最长非连续回文串,区间DP)
- 滚动 导航栏 吸顶 固定
- C
- 课堂笔记: 配置zookeeper(zk)并创建第一个hadoop项目
- Google VR开发-Cardboard VR SDK头部追踪实现(卡尔曼滤波)
- JS异步编程
- 编写自己的代码库(javascript常用实例的实现与封装)
- hdu 1595 find the longest of the shortest