本帖已转向:http://www.iteye.com/topic/201103
[i]
大家好,今天向大家推荐一个轻量级的java rest 框架 JRest4Guice
项目地址:
http://code.google.com/p/jrest4guice/
这个项目借鉴了
http://www.iteye.com/topic/170289的一些思想和代码。本人在此先谢了。
特点:
1. 基于GUICE
2. 零配置式服务声明
@Restful(uri = "/contacts")
public class ContactListRestService
3. 服务的自动扫描注册
4. 非侵入式风格,用户不需要实现特定的接口来实现Restful服务
用户只要在指定的POJO上:
1. 声明为@Restful,并指明访问的URI格式
2. 在指定的方法上声明为@HttpMethod
5. 支持Rest的Post. Get. Put. Delete操作
用户在指定的方法上通过@HttpMethod注解来声明方法的类型,如下:
@HttpMethod(type = HttpMethodType.POST)
public String createContact(String name, @RequestParameter("homePhone") String homePhone, @ModelBean Contact contact)
@HttpMethod
public String getContact(@FirstResult int first, @MaxResults int max)
注:如果没有提供HttpMethodType类型的声明,系统会自动根据方法名称的前缀来自动识别(方法名必须以get/post/put/delete开头)
6. 灵活的注入
6.1. 支持HttpServletRequest. HttpServletResponse. ModelMap的注入
@Inject
private ModelMap modelMap;
@Inject
private HttpServletRequest request;
@Inject
private HttpServletResponse response;
6.2. 支持参数的自动注入
方法中的参数可以由系统自动注入,如下:
public String createContact(String name, @RequestParameter("homePhone") String homePhone, @ModelBean Contact contact)
注:如果参数没有任何注解,系统默认获取上下文ID为参数名称的参数值,否则通过@RequestParameter注解指定的参数名称来获取,@ModelBean可以将上下文中的参数转换成指定参数类型的Java bean
6.3. 支持对JndiResource的注入
示例代码:
@Restful(uri = { "/contact", "/contact/{contactId}" })
public class ContactRestService {
@Inject
private ModelMap modelMap;
@Inject
private HttpServletRequest request;
@Inject
private HttpServletResponse response;
@Inject
@JndiResource(jndi = "test/ContactService")
private ContactService service;
@HttpMethod(type = HttpMethodType.POST)
public String createContact(String name, @RequestParameter("homePhone") String homePhone, @ModelBean Contact contact) {
if (contact == null)
return HttpResult.createFailedHttpResult("-1","联系人信息不能为空").toJson();
String contactId = null;
try {
contactId = this.service.createContact(contact);
return HttpResult.createSuccessfulHttpResult(contactId).toJson();
} catch (RemoteException e) {
return HttpResult.createFailedHttpResult(e.getClass().getName(),e.getMessage()).toJson();
}
}
@HttpMethod
public String putContact(@RequestParameter("contactId")
String contactId, @ModelBean
Contact contact) {
if (contactId == null)
return HttpResult.createFailedHttpResult("-1","没有指定对应的联系人标识符").toJson();
try {
this.service.updateContact(contact);
return HttpResult.createSuccessfulHttpResult("修改成功").toJson();
} catch (RemoteException e) {
return HttpResult.createFailedHttpResult(e.getClass().getName(),e.getMessage()).toJson();
}
}
@HttpMethod
public String getContact(@RequestParameter("contactId")
String contactId) {
try {
Contact contactDto = this.service.findContactById(contactId);
return HttpResult.createSuccessfulHttpResult(contactDto).toJson();
} catch (Exception e) {
return HttpResult.createFailedHttpResult(e.getClass().getName(),e.getMessage()).toJson();
}
}
@HttpMethod
public String deleteContact(@RequestParameter("contactId")
String contactId) {
try {
this.service.deleteContact(contactId);
return HttpResult.createSuccessfulHttpResult("删除成功").toJson();
} catch (Exception e) {
return HttpResult.createFailedHttpResult(e.getClass().getName(),e.getMessage()).toJson();
}
}
}
[/i]
分享到:
相关推荐
Java Guice 3.0是一款轻量级的依赖注入(Dependency Injection, DI)框架,它致力于简化Java应用程序的构建过程,让组件之间的依赖关系更加清晰和易于管理。依赖注入是一种设计模式,它允许代码在运行时自动管理和...
Guice,发音为"juice",是由Google开发的一个轻量级依赖注入(Dependency Injection,简称DI)框架,专门针对Java 11及更高版本设计。依赖注入是一种设计模式,它帮助开发者解耦代码,使得组件之间通过接口进行通信...
Java依赖注入框架Guice2是Google开发的一款轻量级的依赖注入库,它极大地简化了Java应用程序中的对象创建和管理。Guice2以其简洁的API和强大的功能在开发者社区中赢得了广泛的认可。依赖注入(Dependency Injection...
Guice,发音为“juice”,是由Google赞助并开源的一款轻量级的依赖注入(Dependency Injection,简称DI)框架。依赖注入是一种设计模式,它允许我们解耦代码,提高组件的可测试性和可维护性。Guice是针对Java平台的...
Guice是轻量级DI容器,主要适合快速开发和部署的项目,而Spring框架是功能强大、灵活性高的DI容器,适合大型项目和企业级项目。Guice更适合小型项目和快速开发,而Spring框架更适合大型项目和企业级项目。
Guice是由Google大牛Bob lee开发的一款轻量级的java IoC容器。其优势在于: 速度快,号称比spring快100倍。 无外部配置(如需要使用外部可以可以选用Guice的扩展包),完全基于annotation特性,支持重构,代码...
Guice,全称为Google Guice,是一款由Google开发的轻量级依赖注入(Dependency Injection,简称DI)框架,主要用于简化Java应用的初始化和组件管理。依赖注入是一种设计模式,它可以帮助开发者解耦代码,提高软件的...
Guice是Google推出的一个轻量级的Java依赖注入框架,其主要功能是自动管理对象之间的依赖关系。它简化了开发过程,使开发者能够更加专注于业务逻辑而非容器配置。Guice的核心特性包括: - **依赖注入**:通过将对象...
Guice是一个轻量级的,开源的,依赖项注入框架,适用于Java 6及更高版本。 这样做是为了减轻工厂的需要并在Java代码中使用new。 在某些情况下,您仍然需要像往常一样编写工厂,但是使用Guice,您的代码将不再直接...
这个标题表明我们要探讨的是两种不同的依赖注入(Dependency Injection,简称DI)容器——Google Guice和Spring框架之间的差异。DI是一种设计模式,它帮助开发者在对象之间解耦,使得代码更加灵活、可测试和可维护。...
总之,Guice-3.0提供了一个轻量级且灵活的IoC解决方案,简化了Java应用的组件管理,通过依赖注入提升了代码的可测试性和可维护性。对于希望避免过度复杂化的IoC配置,同时又想利用Spring或Struts2功能的开发者来说,...
而 Guice 是一个轻量级的依赖注入框架,它能帮助开发者管理对象的生命周期和依赖关系,使得代码更简洁、可测试性更强。 Shiro 的权限注解在实现细粒度的权限控制方面发挥着关键作用。例如,`@...
Guice 是一个轻量级的依赖注入框架,由Google开发,它使得在Java应用中管理对象的创建和依赖关系变得容易。Guice通过注解来实现依赖注入,允许开发者声明他们所需的依赖,而无需手动创建对象或使用复杂的工厂模式。...
Guice是Google提供的一款轻量级的DI框架,用于简化Java应用的初始化和配置过程。本文将基于提供的文件,详细介绍Guice的基本概念、使用方法以及如何进行测试。 【描述】 Guice通过注解的方式实现了依赖注入,使得...
Guice是Google提供的一款轻量级的DI框架,它简化了在Java应用中管理对象及其依赖关系的过程。这个“基于Guice的HelloWorld项目”就是一个简单的示例,用于展示如何使用Guice进行依赖注入。 首先,我们需要理解Guice...
Guice是Google提供的一款轻量级依赖注入(DI)框架,适用于Java应用。它简化了对象的创建和管理,使得代码更易于测试和维护。在本框架中,Guice可能被用作服务定位器,帮助管理对象的生命周期,自动注入依赖,提高...
1. **轻量级**:Guice非常小巧,不会给项目增加过多的复杂度。 2. **易用性**:Guice的学习曲线平缓,开发者可以快速上手。 3. **可扩展性**:支持自定义绑定和拦截器,方便集成其他框架或库。 4. **灵活性**:Guice...
- **Guice**:由Google开发的一个轻量级的Java依赖注入框架。 - **依赖注入的好处**: - 更容易进行单元测试。 - 提高模块间的解耦。 - 减少样板代码。 - 提升可维护性。 - **三种依赖注入方法**: 1. **工厂...
injector, python 依赖注入框架,由Guice启发 注入- python 依赖注入框架,由Guice启发 简介基于 Pattern的依赖注入在 python 中比它的他...这就是说,一个帮助这个过程的框架可以以从大型应用中删除大量锅炉板。 注