jersey2 与 spring4 整合实践【原创】

阅读更多
前几年用过jeysey,那都是1.x版本的,jersey2有很多不同之处。这次我们上分布式搜索引擎,提供给业务系统的包装接口,我们准备使用restful接口,因此准备把jersey2和spring4集成起来用。以下是集成过程(本文省去spring 环境的搭建)。
1. pom引入依赖包(jersey.version=2.23)
  
		  org.glassfish.jersey.ext
		  jersey-spring3
		  ${jersey.version}
		  
		    
		      org.springframework
		      spring-core
		    			
		    
		      org.springframework
		      spring-web
		    
		    
		      org.springframework
		      spring-beans
		    
		  			
		
		
		  org.glassfish.jersey.media
		  jersey-media-json-jackson
		  ${jersey.version}
		
      
      
        org.springframework
        spring-core
        4.1.0.RELEASE
      
      
        org.springframework
        spring-web
        4.1.0.RELEASE
      
      
        org.springframework
        spring-beans
        4.1.0.RELEASE
      
      
        org.springframework
        spring-context
        4.1.0.RELEASE
      
			
        org.springframework
        spring-aop
        4.1.0.RELEASE
      
      
        org.springframework
        spring-context-support
        4.1.0.RELEASE
      

2. web.xml

	    jersey-serlvet
	    
	      org.glassfish.jersey.servlet.ServletContainer
	    
	    
            javax.ws.rs.Application
            cn.gov.zjport.seg.search.jersey.MyApplication
        	
	    1
	  
	
	  
	    jersey-serlvet
	    /*
	  

注:如果不用自定义的 MyApplication, spring bean 将无法注入。
3. rest服务
@Service
@Path("/selsearch")
public class SelSearchServiceImpl implements SelSearchService{
	@Resource
	private SelEsWrappedClient selEsWrappedClient;
	
	@GET
	@Path("/{param}")    
	@Produces(MediaType.TEXT_PLAIN)
	public String search(@PathParam("param") String userName) {
		return selEsWrappedClient.getName()+userName;
	}
}


SelSearchServiceImplSelEsWrappedClient 都是spring管理的bean,需要当作resource 在 MyApplication 中注册

4. 注册器
public class MyApplication extends ResourceConfig {

    /**
     * Register JAX-RS application components.
     */
    public MyApplication () {
    	
    	  //自己写的服务
    	  register(SelSearchServiceImpl.class);

    	  //用 Jackson JSON 的提供者来解释 JSON
    	  register(JacksonFeature.class);
    	
    	  //Spring filter 提供了 JAX-RS 和 Spring 请求属性之间的桥梁
    	  register(RequestContextFilter.class);
    }
}


5. 访问 http://localhost:8080/seg-search-webapp/selsearch/xxx 即可

你可能感兴趣的:(jersey2,spring4,集成,整合)