对JAVA中MVC设计模式、JAVAWEB的三层架构、AOP面向切面编程的总结
2014-11-14 10:51
537 查看
最近在学习JavaWeb的内容,做练习的同时学到了MVC设计模式和AOP面向切面编程,根据我的理解总结一下,如有理解的错误欢迎各位大神指出,必定感激不尽!
首先来看MVC设计模式:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件分层的设计模式,即控制器(controller),视图(view),模型(model)三层。
控制器(controller)用来控制程序的流转。
视图(view)用来展示页面与用户交互。
模型(model)用来封装数据处理业务逻辑。
通过将软件分层使得软件各个层之间的耦合性降低,简单的说就是当需要修改某一层的代码时只要在这一层中修改即可,不用考虑其他层的代码,大大方便了软件的维护。还可以提高代码的重用性,将mvc框架打包可以方便开发很多软件。
接着说下javaweb的三层架构
javaweb中的三层架构是web层,service层,dao层。
web层负责接收浏览器的请求、控制程序的流转和展示页面相当于MVC设计模式中的控制器(controller)和视图(view)。在javaweb中的web层里,servlet负责接收浏览器的请求、控制程序的流转相当于控制器(controller)而视图(view)则交给jsp来展示。
service层又叫业务逻辑层负责处理业务逻辑。即MVC设计模式中的模型(model)而封装数据则交给javabean来解决。
dao层又叫数据访问层负责操作数据库。dao层中只写操作数据库的代码,也就是sql语句。
这样开发也是应用了MVC设计模式减少了各个层之间的耦合,当需要修改某一层的代码时只要在这一层中修改即可非常方便开发和维护。
最后是AOP面向切面编程
上面说了javaweb的三层架构,AOP则是在层与层之间操作,就像把层与层之间用一把刀切开一样,所以叫面向切面编程(我的理解
)。原理就是用动态代理(可以参考我的博客),比如说web应用中的service层处理业务逻辑前开启sql语句的事务,之后关闭连接释放资源就可以代理service层中类
的对象,在invoke方法里的method.invoke();之前开启事务之后关闭连接释放资源即可。在这里通过面向切面编程可以控制事务。还可以通过面向切面编程来输出日志监控对象等。
首先来看MVC设计模式:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件分层的设计模式,即控制器(controller),视图(view),模型(model)三层。
控制器(controller)用来控制程序的流转。
视图(view)用来展示页面与用户交互。
模型(model)用来封装数据处理业务逻辑。
通过将软件分层使得软件各个层之间的耦合性降低,简单的说就是当需要修改某一层的代码时只要在这一层中修改即可,不用考虑其他层的代码,大大方便了软件的维护。还可以提高代码的重用性,将mvc框架打包可以方便开发很多软件。
接着说下javaweb的三层架构
javaweb中的三层架构是web层,service层,dao层。
web层负责接收浏览器的请求、控制程序的流转和展示页面相当于MVC设计模式中的控制器(controller)和视图(view)。在javaweb中的web层里,servlet负责接收浏览器的请求、控制程序的流转相当于控制器(controller)而视图(view)则交给jsp来展示。
service层又叫业务逻辑层负责处理业务逻辑。即MVC设计模式中的模型(model)而封装数据则交给javabean来解决。
dao层又叫数据访问层负责操作数据库。dao层中只写操作数据库的代码,也就是sql语句。
这样开发也是应用了MVC设计模式减少了各个层之间的耦合,当需要修改某一层的代码时只要在这一层中修改即可非常方便开发和维护。
最后是AOP面向切面编程
上面说了javaweb的三层架构,AOP则是在层与层之间操作,就像把层与层之间用一把刀切开一样,所以叫面向切面编程(我的理解
)。原理就是用动态代理(可以参考我的博客),比如说web应用中的service层处理业务逻辑前开启sql语句的事务,之后关闭连接释放资源就可以代理service层中类
的对象,在invoke方法里的method.invoke();之前开启事务之后关闭连接释放资源即可。在这里通过面向切面编程可以控制事务。还可以通过面向切面编程来输出日志监控对象等。
相关文章推荐
- Java乔晓松-基于注解的面向AOP(切面)编程
- Java面试之面向切面编程AOP的原理,
- Java实现AOP面向切面编程的实例教程
- Java乔晓松-基于注解的面向AOP(切面)编程
- 结合Java实例代码来理解 AOP--面向切面编程 中的各个术语
- Java实现AOP面向切面编程的实例教程
- 深入分析JavaWeb 53 -- Spring中的AOP面向切面编程1
- 深入分析JavaWeb 54 -- Spring中的AOP面向切面编程2
- Java动态代理之JDK动态代理和CGLib动态代理 面向切面编程AOP原理
- 何为"面向切面编程AOP"
- AOP 面向切面编程
- 三、面向切面编程AOP(Aspect oriented Programming)
- 体验Java 1.5中面向(AOP)编程
- 体验Java 1.5中面向(AOP)编程
- Struts2拦截器原理(拦截器设计体现的一种编程理念——面向切面编程AOP)
- Spring面向切面编程AOP的个人理解
- Spring in Action 入门之面向切面编程AOP
- Spring框架中AOP(面向方面)编程总结
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现