demo学习心得

来源:互联网 发布:mac os x lion 10.10 编辑:程序博客网 时间:2024/05/22 07:57

以前的日志中,曾提到了一个demo,经过了半个月的研究,有一些想法,那就在CSDN上留下点痕迹吧!首先,本人并不是技术大牛,写文章是为了一点一滴的积累经验,所以大牛请绕道!其次,感谢kevindude为我提供了思考问题的七篇文章,大家不妨直接去看看

基于Struts2+Spring+iBatis的web应用最佳实践系列的七篇文章!
该文章的顺序是:自动配置,访问控制,CRUDL,分页,验证码的形式分析最佳实践策略的。

         谈到自动配置,为了使得项目的自动化和测试,选择使用Maven,parent POM可以定义我们所要使用的依赖和插件,运行时它可以将我们需要的jar自动的加载,前提是我们的repository中存在,否则它也能自动的下载。第二点好处就是,POM能将的整个工程的编译定义phase,简单的理解,就是定义子pom或是相应插件在编译过程中的执行顺序,而每个子pom就完成了相应层的编译,结果就是,定义的插件动作被完成,定义的层被按顺序执行。原作者的话非常的有道理,“对那些应用特有的配置,不管这个应用被部署到那里,这个配置都不会发生变化,而部署特有的配置则不一样,部署到不同的环境具体的配置则不一样。”这就要我们有个定义部署属性的文件,这个过程最先执行,通过在maven使用auto-config,使得这个想法成为可能,在deploy中,解决细节的方法是使用Spring中的PropertyPlaceholderConfigurer类,通过这个类,我们就能在以后用到Spring的地方借用{…}来完成配置了!

       谈到访问控制,为了实现一种安全,可重用性和实用的方案,作者的思路是使用继承抽象类和层层注入的方法,例如,biz、web、dal中都是存在BaseXXX的,通过使用泛型和Cookie,我们就能实现cookie、验证码、转向、jsp保护、action保护了!当然,这里访问的处理离不开拦截器,这里新定义了一个转向的拦截器,有选择性的处理action!

      CRUDL和前面的访问控制的实现有一曲同工之妙,例如crudl的实现还是在baseXXX中,在interface中的接口在abstract类中继承后进行了默认的写入,在后面具体用的环境中,需要改变model或是注入cookie就可以使用了,在特殊情况下就可以在biz或是web中进行覆写!

       在看这系列文章前,分页怎样实现我并不知晓,看了这篇文章后,我已经学会在IbatorPlus的帮助下轻松的分页,简单的道理是容易明白的,复杂是细节,作者在这里修改了iBator,关于ibatis,作者有下面的一番感慨:

--------------------------------------------------------------------------------------

在这里,笔者也不禁想说,ibator本身就提供了很好的扩展机制,我们不仅可以替换targetRuntime的实现,还可以有针对性的写一些插件,比如在生成的sqlmap中加入对mysql分页的支持是通过MysqlPagingPlugin这个插件来实现的。

--------------------------------------------------------------------------------------

    经过了修改model_Sqlmap.xml、在Abstract中写pageing方法,在baseaction中实现list以及定义了新的标签库,终于能在JSP上灵活的使用分页了!

 

   最后,关于验证码,使用了CheckCodeSession类来生成我们想要的四位随机数的图片,这些数据是内部知道的,可以在登录后进行验证,还可以加载错误提示信息!非常的好用!

原创粉丝点击