仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1284|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网站制作之SpringFramework中的AOP复杂利用

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:51:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。AOP作为Spring这个轻量级的容器中很主要的一部分,失掉愈来愈多的存眷,Spring的Transaction就是用AOP来办理的,明天就经由过程复杂的例子来看看Spring中的AOP的基础利用办法。起首断定将要Proxy的方针,在Spring中默许接纳JDK中的dynamicproxy,它只可以完成接口的代办署理,假如想对类举行代办署理的话,必要接纳CGLIB的proxy。明显,选择“编程到接口”是更明智的做法,上面是将要代办署理的接口:publicinterfaceFooInterface{publicvoidprintFoo();publicvoiddummyFoo();}和其一个复杂的完成:publicclassFooImplimplementsFooInterface{publicvoidprintFoo(){System.out.println("InFooImpl.printFoo");}publicvoiddummyFoo(){System.out.println("InFooImpl.dummyFoo");}}接上去创立一个Advice,在Spring中撑持Around,Before,Afterreturning和Throws四种Advice,这里就以复杂的BeforeAdvice举例:publicclassPrintBeforeAdviceimplementsMethodBeforeAdvice{publicvoidbefore(Methodarg0,Object[]arg1,Objectarg2)throwsThrowable{System.out.println("InPrintBeforeAdvice");}}有了本人的businessinterface和advice,剩下的就是怎样往拆卸它们了,起首使用ProxyFactory以编程体例完成,以下:publicclassAopTestMain{publicstaticvoidmain(String[]args){FooImplfooImpl=newFooImpl();PrintBeforeAdvicemyAdvice=newPrintBeforeAdvice();ProxyFactoryfactory=newProxyFactory(fooImpl);factory.addBeforeAdvice(myAdvice);FooInterfacemyInterface=(FooInterface)factory.getProxy();myInterface.printFoo();myInterface.dummyFoo();}}如今实行程序,奇妙的了局就呈现了:InPrintBeforeAdviceInFooImpl.printFooInPrintBeforeAdviceInFooImpl.dummyFoo固然如许能体味到Spring中AOP的用法,但这决不是值得保举的办法,既然利用了Spring,在ApplicationContext中拆卸所必要的bean才是最好战略,完成下面的功效只必要写个复杂的applicationContext就能够了,以下:Theaopapplicationcontext
FooInterface



myAdvice
固然,main中的代码也要举行响应的修正:publicstaticvoidmain(String[]args){ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext.xml");FooInterfacefoo=(FooInterface)context.getBean("foo");foo.printFoo();foo.dummyFoo();}如今运转一下,了局将和下面的运转了局完整一样,如许是否是更文雅?当必要变动完成时,只必要修正设置文件就能够了,程序中的代码不需任何修改。可是,这时候候会发明被proxy的object中的一切办法挪用时都将运转advice中的before,这明显不克不及满意尽年夜多半情形下的必要,此时,只需借用Advisor就能够了,固然要在Advisor中使用pattern设置好哪些办法必要advice,变动applicationContext以下:Thespringevaapplicationcontext


.*print.*

FooInterface



myAdvisor
主程序不需举行任何修正,运转了局已变样了:InPrintBeforeAdviceInFooImpl.printFooInFooImpl.dummyFoo至此,应当已了解了Spring中AOP的利用办法,固然Spring中AOP最主要的使用是TransactionManager,举个这方面的applicationContext例子看看:
/WEB-INF/jdbc.properties

${jdbc.driverClassName}

${jdbc.url}

${jdbc.username}

${jdbc.password}



smartmenu.hbm.xml



${hibernate.dialect}













PROPAGATION_REQUIRED,readOnly

PROPAGATION_REQUIRED,readOnly


嗯,要想完全了解Spring的AOP,最好仍是多看看源码,开源就是好啊!
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。
不帅 该用户已被删除
沙发
发表于 2015-1-21 16:25:21 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
透明 该用户已被删除
板凳
发表于 2015-1-30 21:08:17 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-31 07:02:59 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
小女巫 该用户已被删除
5#
发表于 2015-1-31 07:21:23 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
简单生活 该用户已被删除
6#
发表于 2015-2-6 18:24:29 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
深爱那片海 该用户已被删除
7#
发表于 2015-2-9 02:37:42 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
金色的骷髅 该用户已被删除
8#
发表于 2015-2-25 00:43:23 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
海妖 该用户已被删除
9#
发表于 2015-3-2 00:28:52 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
柔情似水 该用户已被删除
10#
发表于 2015-3-7 00:42:53 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
蒙在股里 该用户已被删除
11#
发表于 2015-3-13 23:08:38 | 只看该作者
是一种使用者不需花费很多时间学习的语言
乐观 该用户已被删除
12#
发表于 2015-3-18 04:22:44 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
13#
发表于 2015-3-20 02:43:50 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘灵儿 该用户已被删除
14#
发表于 2015-3-22 22:10:27 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
分手快乐 该用户已被删除
15#
发表于 2015-3-24 21:19:50 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
愤怒的大鸟 该用户已被删除
16#
 楼主| 发表于 2015-4-7 10:58:16 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
第二个灵魂 该用户已被删除
17#
发表于 2015-4-9 17:25:31 | 只看该作者
是一种突破用户端机器环境和CPU
变相怪杰 该用户已被删除
18#
发表于 2015-4-13 21:04:20 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
admin 该用户已被删除
19#
发表于 2015-4-14 04:48:56 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
精灵巫婆 该用户已被删除
20#
发表于 2015-4-22 13:45:17 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 09:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表