spring mvc
图中的DispatcherServlet为前端控制器,负责分发视图层的请求,并将请求发送到Controller(控制层),Controller调用Service(业务层)处理业务,Service调用DAO(数据持久层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。
RegisterService类的头部添加了Spring MVC注解@Service,注解@Service的作用是Spring MVC在扫描类时,会将添加@Service注解的类自动添加到Spring容器中,这些类无需在配置文件中进行定义,类似作用的注解还包括@Component、@Repository、@Controller。
Spring MVC的客户端与服务端的交互流程起始于DispatcherServlet,DispatcherServlet为前端控制器,负责分发视图层的请求,配置在web.xml文件中。DispatcherServlet依据相应的规则将客户端请求分发到目标Controller(控制层)来处理,Controller调用Service(业务层)处理业务,Service调用DAO(数据持久层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。
上图是在实际开发中MVC的架构图,架构图分为两部分:虚线框外的是WEB程序的浏览器部分,用户通过浏览器与系统进行交互,同时浏览器也负责解析JSP页面;虚线框内的是WEB程序的后台部分,这部分包括控制器(Controller类)、业务逻辑(Service类)、数据模型(实体类)、数据持久层(Mybatis框架)和MySQL数据库管理系统。
在MVC架构中,JSP页面就是视图,用户通过JSP页面发出请求后,Spring MVC会根据请求路径,将请求发给与请求路径对应的Controller类,Controller类调用Service类对请求进行处理,Service类会调用数据持久层MyBatis完成对实体类的存取和查询工作,并将处理结果返回到Controller类,Controller类将处理结果转换为ModelAndView对象,JSP接收ModelAndView对象并进行渲染。
Controller类是在普通Java类的头部加入@Controller注解,使其变为Controller类,在Controller类中使用@RequestMapping注解标记在Controller类方法的头部,使该方法可以响应一个WEB请求地址,当JSP页面向这个地址发送请求时,该方法会被调用。
Service类为业务逻辑处理类,在类的头部使用注解@Service标注,被注解@Service标注的类会被Spring框架自动注入到Controller类。
实体类也是POJO类,也就是MVC的数据模型,实体类仅有属性以及获取和设置属性的get和set方法,没有事务处理方法。
看图总结的话,就一句话spring mvc只是一种设计模式,控制器写接口,服务类的实现写业务的逻辑并在其中实现数据持久化,实体类对应数据库中的表。
侵权我会立即删除