现在越来越多前后端分离项目,大多数Java服务端都只提供REST接口。Controller层感觉好多都只是将参数转给Service层而已例如曾经见到的代码:@RestControllerpublicclassLoginController{@AutowiredprivateLoginServiceloginService;@RequestMapping("/login")publicApiResultlogin(StringuserName,Stringpassword){returnloginService.login(userNmae,password);}}Java服务端要实现一个接口,感觉还是挺麻烦的,要建立Controller,Service,ServiceImpl,DAO,DaoImpl大体五个文件,现在的ORM框架基本都支持代理,少了DaoImpl。但还是有四个文件需要创建。今天看到了Spring-data-rest觉得他的设计思路很好,但还是没有找到自定义返回结果的方法.只需要一个注解就自动生成了RESTAPI接口@RepositoryRestResource(path="user")@RepositorypublicUserDaoextendsJpaRepository{ }//就一个@RepositoryRestResource注解就生成了以下几个接口GEThttp://localhost:8080/user//用户列表GEThttp://localhost:8080/user/{id}//单个用户POSThttp://localhost:8080/user//创建用户以application/jsonPUThttp://localhost:8080/user/{id}//更新用户信息请求体为applcation/json还有HEAD,PATCH,DELETE等接口当然spring-data-rest有很多不足,但框架有意的封装Controller层,这是否说明Java服务端REST服务可以无Controller.可以不用写Controller层代码。只关心业务逻辑?@RestServicepublicinterfaceLoginService{@RequestMapping("/login")ApiResultlogin(StringuserName,Stringpassword);}类似上面的代码是否我们对于@RestService的需求要大于@RestController?Controler层是否在现如今的REST服务下作用已经很小了?
宝慕林4294392
相关分类