大家好,扣除回文之外,这是我第一次在PTT上发文
若有不恰当的地方还请多多指教,谢谢
之前我用Java都是Java SE的部分比较多
主要做网页爬虫,连接档案系统或DB储存与分析资料
也有写Swing或JavaFX做GUI给User
但Java EE的部分就没什么接触了
以前为了一个国科会案子有自己土法写JSP/Servlet
有维护过AXIS2产生的WebService的Server code
除此之外好像没什碰到Java EE的东西
后来我写网页服务应用都以PHP为主
再配合CodeIgniter的MVC框架才了解到MVC的好
所以最近要准备以Java写RESTful服务决定研究Spring+Hibernate
首先是Spring的部分照着spring.io的训练做真是吓人的好用
Hibernate的存在更是让我觉得之前浪费了很多生命写业务逻辑外的程式...
抱歉,前言好像多了点
在Spring上我使用RestController来写控制器
也用过RequestBody来让Client直接丢JSON变成Java物件使用
如一个新增User到数据库的服务:
@RequestMapping("/add")
public ResultBean addUser(@RequestBody User user){
// 先检查user不为null
// 再检查user里面所有field都不是null
// 再把user丢去hibernate储存
// 返回自订的Result物件让Sprint自动转为JSON
}
这边收到user第一件要做的事情检查是user不是nulll
第二件要检查是不是user的所有field都非null
update的服务也是如此,而其他物件的add、update也都必须要做
这是事先订好的,field可以是空字串,但不能是null
这部分我有写一个运用反射自动检查所有field的工具
丢任何物件进去都能检查有哪些field,以及是否全部都非null
但我好奇有没有方法让Spring自动检查RequestBody?
或是把Body转为物件后,先经过我写的程式检查再呼叫mapping的method?
若是Servlet我会override service method先检查
没问题后再让他转去doXXX方法执行
但对Sprint不熟不知道该怎么做
上网查询查到比较多Struts2的资讯
想在此请问各位前辈们,感谢!