Dao层:主要是作数据持久层的工做,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,而后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪一个类,显得结构很是清晰,DAO层的数据源配置。前端
dao层代码示例:数据库
service层:主要负责业务模块的逻辑应用设计, Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得很是简洁。 json
service层代码示例:后端
dao层和service层关系:service层常常要调用dao层的方法对数据进行增删改查的操做,现实开发中,对业务的操做会涉及到数据的操做,而对数据操做经常要用到数据库,因此service层会常常调用dao层的方法。api
扩展资料app
Service层是创建在DAO层之上的,创建了DAO层后才能够创建Service层,而Service层又是在Controller层之下的,于是Service层应该既调用DAO层的接口,它恰好处于一个中间层的位置。每一个模型都有一个Service接口,每一个接口分别封装各自的业务处理方法。spa
在实际开发中DAO层大可能是对某张表进行增删改查,都是一些固定的语句,除非涉及到更复杂的service层业务逻辑,才可能要添加更复杂的DAO层方法。设计
Controller层通常都是写接口提供给前端或者后端其余服务使用的,通常后端的接口都是写在 Controller层,Controller层的接口里面不写业务逻辑,主要是调用Service层的业务逻辑方法,service层主要是写业务逻辑方法,service层常常要调用dao层的方法对数据进行增删改查的操做。3d
下面是Controller层的接口示例:code
@Controller @RequestMapping(value = "/api/platform/exceptioncenter/exceptioninfo") public class ExceptionInfoController { //注入 @Autowired private ExceptionInfoBiz exceptionInfoBiz; /** * 建立异常信息请求 * @param requestBody 请求消息内容 * @param request 请求消息头 * @return jsonObject */ @RequestMapping( value="/create", method = RequestMethod.POST ) public ModelAndView createExceptionInfo(@RequestBody String requestBody, HttpServletRequest request) { JSONObject jsonObject = JSONObject.fromObject(requestBody); ComExceptionInfo comExceptionInfo = new ComExceptionInfo(); comExceptionInfo.setProjectName(jsonObject.getString("projectName")); comExceptionInfo.setTagName(jsonObject.getString("tagName")); exceptionInfoBiz.insert(comExceptionInfo); //返回请求结果 JSONObject result= new JSONObject(); result.put("success", "true"); return new ModelAndView("", ResponseUtilsHelper.jsonSuccess(result.toString())); } }