参考文献
com
+- example
+- myapplication
+- Application.java
|
+- customer
| +- Customer.java
| +- CustomerController.java
| +- CustomerService.java
| +- CustomerRepository.java
|
+- order
+- Order.java
+- OrderController.java
+- OrderService.java
+- OrderRepository.java
MVC框架是什么
"模型-视图-控制器"
模型负责封装应用程序数据在视图层展示
视图仅仅只是展示这些数据,不包含任何业务逻辑
控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑
MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响
在Spring MVC应用程序中,
模型通常由POJO对象组成,它在业务层中被处理,在持久层中被持久化。
视图通常是用JSP标准标签库(JSTL)编写的JSP模板。
控制器部分是由dispatcher servlet负责。
一些开发人员认为业务层和DAO层类是MVC模型组件的一部分。我对此持有不同的意见。
我不认为业务层及DAO层类为MVC框架的一部分。
通常一个web应用是3层架构,即数据-业务-表示。MVC实际上是表示层的一部分。
"Dispatcher Servlet(Spring控制器)"
在最简单的Spring MVC应用程序中,控制器是唯一的你需要在Java web部署描述文件(即web.xml文件)中配置的Servlet。
Spring MVC控制器 ——通常称作Dispatcher Servlet,实现了前端控制器设计模式。并且每个web请求必须通过它以便它能够管理整个请求的生命周期。
当一个web请求发送到Spring MVC应用程序,dispatcher servlet首先接收请求。
然后它组织那些在Spring web应用程序上下文配置的(例如实际请求处理控制器和视图解析器)或者使用注解配置的组件,所有的这些都需要处理该请求。
MVC从逻辑上把应用分为模型组件,视图组件和控制器组件
其中控制器组件又可以细分为:前端控制器组件和后端控制器组件。
前端控制器叫DispatcherServlet
端控制器叫Controller
处理请求URL和后端控制器映射的叫HandMapping
负责业务逻辑处理的模型对象一般也是我们平常写的DAO/DTO组件
Controller返回一个ModelAndView对象给DispatcherServlet,ModelAndView可以携带一个视图对象,也可以携带一个视图对象的逻辑名
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了
@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。