Facade
@Path("/sysUserService")
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
@Produces({ContentType.APPLICATION_JSON_UTF_8, ContentType.TEXT_XML_UTF_8})
public interface SysUserFacade {
@GET
@Path("/testget")
public void testget();
@GET
@Path("/getUser")
public SysUser getUser();
@GET
@Path("/get/{id : \\d+}")
public SysUser getUser(@PathParam(value = "id") Integer id);
@GET
@Path("/get/{id : \\d+}/{name}")
public SysUser getUser(@PathParam(value = "id") Integer id, @PathParam(value = "name") String name);
@POST
@Path("/testpost")
public void testpost();
@POST
@Path("/postUser")
public SysUser postUser(SysUser user);
@POST
@Path("/post/{id}")
public SysUser postUser(@PathParam(value = "id") String id);
}
实现类
@Service("sysUserService")
@com.alibaba.dubbo.config.annotation.Service(interfaceClass=bhz.sys.facade.SysUserFacade.class, protocol = {"rest", "dubbo"})
public class SysUserService implements SysUserFacade {
public SysUser getUser() {
SysUser user = new SysUser();
user.setId("1001");
user.setName("张三");
return user;
}
public SysUser getUser(Integer id) {
SysUser user = new SysUser();
user.setId("1001");
user.setName("张三");
return user;
}
public SysUser getUser(Integer id, String name) {
SysUser user = new SysUser();
user.setId("1001");
user.setName("张三");
return user;
}
public SysUser postUser(SysUser user) {
user1.setName("张三");
return user1;
}
public SysUser postUser(String id) {
SysUser user = new SysUser();
user.setId("1001");
user.setName("张三");
return user;
}
}
dubbo-provider.xml
<context:property-placeholder location="classpath:config.properties" />
<dubbo:application name="${dubbox.application}" owner="programmer" organization="dubbox"/>
<dubbo:registry address="${dubbox.registry.address}" timeout="100000"/>
<dubbo:annotation package="bhz.sys.service" />
<dubbo:protocol name="dubbo" serialization="kryo" optimizer="bhz.sys.serial.SerializationOptimizerImpl" />
<dubbo:protocol name="rest" server="${dubbox.rest.server}" port="${dubbox.rest.port}" contextpath="${dubbox.rest.contextpath}" threads="${dubbox.rest.threads}" accepts="${dubbox.rest.accepts}" />
<bean id="sysUserService" class="bhz.sys.service.SysUserService" />
<dubbo:service interface="bhz.sys.facade.SysUserFacade" ref="sysUserService" protocol="rest,dubbo" />
小结
- 提供restful接口,不仅可以为web端提供数据,也可以为手机端提供数据。