课程咨询 :18487146383

长沙Java培训 > 达内新闻 > Java框架还能这么玩?(下)
  • Java框架还能这么玩?(下)

    发布:长沙Java培训      来源:sdk      时间:2016-10-08

  • 2.反射+声明+约定

    前面达内长沙java培训所说的方法看起来很美,但是有个巨大的问题,就是对客户侵入性太强。表现在两个方面:

    (1)子类(业务类)很不自由,被迫继承一个它不想继承的类

    (2)难于做单元测试,你也许注意到了,AbstractAction其实是依赖HttpRequest,和HttpResponse的,这两个对象一般需要web容器跑起来才能得到。

    如果达内长沙java培训不说,估计你会以为这是一个普通的java class,实际上,它就是一个普通java class。

    它虽然叫做LoginAction,但是和框架一毛钱关系也没有,毕竟它啥也没有继承,你的框架怎么知道它就是一个潜在的Action类?

    这时候需要一点点声明性的工作,告诉框架,这是一个Action类,声明可以用xml,也可以用注解。这时候框架通过解析XML就会知道:奥,这是一个Action类,让我把它创建起来吧!

    怎么创建?没看到配置文件中的类名吗,java反射出马,轻松搞定。接下来的问题是:怎么把Http Reqeust中的参数怎么传递给这个类?  

    还是用反射!看到LoginAction的setUsername和setPassword没有, 框架和使用者约定好这么办:如果从浏览器传递到服务器的的参数是username=liuxin&password=123456,那你框架应该做的事情就是调用setUsername("liuxin") , setPassword("123456")

    框架和使用者还可以再增加一个约定:调用了setXXX方法以后,就去调用exectue方法,这是个真正的业务方法。

    如果你讨厌繁琐的xml,现在Java提供了另外一种强大的武器:Java注解。Java注解能够让你在源代码中添加一些“元数据”, 为一个类或者方法的增加一些“额外”的信息。

    @Action用来表明这是一个Action类

    @RequestMapping表明如果用户通过浏览器访问/login ,那这个excute方法就会被执行。

    还要加上这么一个约定:如果用户访问的是/login?username=liuxin&password=123456的话那么execute方法的username和password两个参数将会绑定到值“liuxin"和"123456"

    有了这些注解和约定,你的框架就能找到程序员写的Action类,并且直到如何调用方法, 如何传递参数了。

上一篇:Java框架还能这么玩?(上)

下一篇:管用的10条Java编程技巧(一)

最新开班日期  |  更多

Java--大数据业余制班

Java--大数据业余制班

开班日期:4月28日

Java--大数据全日制班

Java--大数据全日制班

开班日期:4月28日

Java--零基础业余班

Java--零基础业余班

开班日期:4月28日

Java--零基础全日制班

Java--零基础全日制班

开班日期:4月28日

  • 网址:http://cs.java.tedu.cn     地址:长沙市开福区芙蓉中路一段 476 号建鸿达现代城 9 楼
  • 课程培训电话:18487146383     全国服务监督电话:400-111-8989
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56