您的位置:首页 > 运维架构 > 网站架构

对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();之前开启事务之后关闭连接释放资源即可。在这里通过面向切面编程可以控制事务。还可以通过面向切面编程来输出日志监控对象等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: