第五章 面向切面编程(AOP)之二

第五章 面向切面编程(AOP)之二

大家好,又见面了,我是全栈君。

        上一次在第五章中简单的介绍了一下
 AOP
中几个常用的功能,现在我想通过实际的例子来说明它强大的功能,这些例子是项目中实际用到的,而不是一些没有使用价值的例子。我会介绍它在一个完整的系统中用到的地方,有日志处理,异常处理,事物处理,身份验证(权限控制),缓存机制(二级缓存)。这应该是aop最拿手的了。我会通过写一个很小的
Demo
把这些功能全部容纳进去。

     在你的系统中能否充分发挥aop的作用,一定要保证你的系统要有良好的架构设计和良好的代码编程,我们知道在spring中提倡面向接口和使用代理的编程思想.如果没有好的设计架构和良好的代码编程。即使用上了aop 在性能上也会受影响的。我们知道系统中任何一个环节都很重要。一个环节出问题,可能就会影响到整体的性能。这是我们最难做到的,做到十全十美。在做之前一定要有一个比较完美的解决方案。
   接下来我将通过写一个简单的系统,系统的简单描述,不同身份登陆到系统可以执行不同的操作,普通用户可以浏览信息,一般用户可以添加信息,高级用户可以执行所有的操作。就是一个简单的新闻发布系统的简单后台管理。我主要是把aop的几种常用的功能集成到系统中。这个系统的功能比较简单,但业务的需求还是可以用到上面提到的几种功能的。
   我们简单的介绍一下流程。
   普通用户登录后,只能看到最新的新闻信息。不能执行其他任何操作。同时要通过日志记录最近的登陆的用户。
   一般用户,也就是编辑,他们进去后可以添加新闻,修改新闻。但不能删除新闻,系统也要对他们的操作进行记录。
  最后就是管理员(高级用户),可以删除一系列的操作了。同时也记录信息。在删除时一定要加上事务处理,以防数据意外丢失。
  他们登陆之前都要进行身份验证。对访问比较频繁的页面要实行缓存策略。这样才能保证系统的更好的运行。这几个简单的操作已经把我们提到的几个功能都用到了,下面就看你如何集成到你的业务中去,如何用代码来写了。同时也要考虑到性能的问题。
   现在我先把工程搭建一下。用struts+spring+hiberante技术来实现。数据库用MySql.日志记录用常用的log4j,安全框架用acegi,缓存用EHCache.事务就用spring自带的了。
 我们的需求分析完了,再看看技术框架如何搭建。如下图。
第五章 面向切面编程(AOP)之二
  下面是工程目录的搭建。如下图。我以后用到那部分我会在详解的讲解。
  
第五章 面向切面编程(AOP)之二
   今天先写到这.










本文转自 weijie@java 51CTO博客,原文链接:http://blog.51cto.com/weijie/66472,如需转载请自行联系原作者
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107947.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • iOS的三重缓冲和微型口吃(micro stuttering)

    iOS的三重缓冲和微型口吃(micro stuttering)Instrument中的Display模块:instrument-displayiOS中采用双重缓冲和三重缓冲一起使用,从display中就可以看出来。即:双缓冲不够用了就采用三缓冲。首先看看双重缓冲:双缓冲如上,此时双缓冲很够用,每次Vsync来到之前,上一帧的framebuffer(apple叫做surface+ID),所以帧率很高,基本在…

  • 2020考研,老学长帮你规划[通俗易懂]

    2020考研,老学长帮你规划[通俗易懂]高能干货预警,文章目前已经近三万字,这可能是最负责的一篇文章了。文章很长,建议拿好笔记慢慢看。本文会解决你在考研各科在不同时期不同阶段遇到的所有问题,方法具体到草稿纸怎么使用,课本具体怎么使用,相信我,读完你一定会有巨大收获。我总结了我一年以来遇到的所有问题,使用的所有方法。既然最终目的是在考研这场「考试」中获得高分,那么所有的时间和精力,都应该围绕着「考试」进行,才是效率最高的方式。但是…

  • tree conflict svn 怎么解决

    tree conflict svn 怎么解决

  • 【编解码】从零开始写H264解码器(1) 总纲

    【编解码】从零开始写H264解码器(1) 总纲关于编解码的原理的书和文章自己一直在看,从入门到略懂,但是感觉有些零零碎碎,或不完整,似乎串不成体系。有些小功能,知道是知道,并不知道它的意义和作用,时间一长也会慢慢忘记。反思了一下,或许很多东西,还是需要自己动手做一遍,会理解的更深更透彻一些,就像费曼学习法,你能讲出来,才说明懂了,这个也一样,你能把功能实现出来,才说明你真的明白了里面的流程和逻辑。

  • python怎么保留小数「建议收藏」

    python怎么保留小数「建议收藏」python如何保留小数点几位第一种round()函数a=1.23456print(round(a,2))print(round(a,3))1.231.234第二种format()函数print(format(1.23456,’.2%f’))1.23第三种’.2%f’%fq=1.234print(‘.2%f’%q)1.23

  • linux 切换内核版本,切换 Linux 内核版本[通俗易懂]

    linux 切换内核版本,切换 Linux 内核版本[通俗易懂]Linux内核是开源类Unix系统宏内核。仅仅一个内核并不是一套完整的操作系统。有一套基于Linux内核的完整操作系统叫作Linux操作系统。Kernel是Linux系统的核心,主要负责硬件的支持。Linux内核提供了安全补丁,bugfix和新特性。Linux内核在GNU通用公共许可证第2版之下发布。Linux的Kernel主要提供以下五个基本的功能硬件管…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号