如何理解Spring的AOP? spring 框架的面向切面编程如何理解?

\u5982\u4f55\u7406\u89e3Spring\u7684AOP

\u9996\u5148\u697c\u4e3b\u9700\u8981\u660e\u767d\u201c\u4e8b\u7269\u5904\u7406\u201d\u7684\u6982\u5ff5
AOP\u4e3b\u8981\u662f\u9488\u5bf9\u4e8b\u7269\u5904\u7406\u6765\u8bf4\u5427,\u800c\u4e14\u662f\u76f8\u5bf9\u4e8e\u4ee5\u524d\u7684\u7f16\u7a0b\u5f0f\u4e8b\u7269\u5904\u7406\u7684,\u4e0d\u7528AOP\u7684\u8bdd,\u6211\u4eec\u5f97\u901a\u8fc7\u786c\u7f16\u7801\u7684\u65b9\u5f0f\u5c06\u4e8b\u7269\u5904\u7406\u5199\u5728\u65b9\u6cd5\u4e2d,\u6709\u4e86AOP\u4e4b\u540e,\u6211\u4eec\u53ea\u9700\u8981\u5728spring\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e\u4e00\u4e0b\u4e8b\u7269\u5c31\u53ef\u4ee5\u4e86,\u8fd9\u5c31\u53eb\u58f0\u660e\u5f0f\u4e8b\u7269\u5904\u7406.\u4e00\u822c\u914d\u7f6e\u65f6\u662f\u901a\u8fc7\u914d\u7f6e\u5339\u914d\u67d0\u4e2a\u683c\u5f0f\u7684\u65b9\u6cd5\u540d,\u5f53\u8fd0\u884c\u5230\u8fd9\u79cd\u65b9\u6cd5\u7684\u65f6\u5019spring\u5c31\u4f1a\u62e6\u622a\u4e0b\u5b83\u6765,\u5e76\u7ed9\u5b83\u52a0\u4e0a\u4e8b\u7269\u7684\u5904\u7406\u4e86
\u901a\u4fd7\u70b9\u8bb2spring\u7684AOP\u76f8\u5f53\u4e0e\u7535\u8111\u4e2d\u4e3b\u677f\u7684\u4f5c\u7528\u3002\u4e3b\u677f\uff1a\u5c31\u662f\u628a\u5404\u79cd\u5143\u5668\u4ef6\u8fde\u63a5\u5230\u5176\u4e0a\uff0c\u7edf\u4e00\u7531\u5176\u7ba1\u7406\uff0c\u907f\u514d\u4e86\u5143\u5668\u4ef6\u4e0e\u4e0e\u5668\u4ef6\u4e4b\u95f4\u8fde\u63a5\u7684\u6df7\u4e71\u3002
\u4e0d\u77e5\u8fd9\u4e48\u8bf4\u4f60\u6709\u6ca1\u6709\u660e\u767d\u4e00\u4e9b

Spring\u63d0\u4f9b\u4e86\u5bf9AOP\u6280\u672f\u7684\u826f\u597d\u5c01\u88c5\uff0cAOP\u79f0\u4e3a\u9762\u5411\u5207\u9762\u7f16\u7a0b\uff0c\u5c31\u662f\u7cfb\u7edf\u4e2d\u6709\u5f88\u591a\u5404\u4e0d\u76f8\u5e72\u7684\u7c7b\u7684\u65b9\u6cd5\uff0c\u5728\u8fd9\u4e9b\u4f17\u591a\u7684\u65b9\u6cd5\u4e2d\u8981\u52a0\u5165\u67d0\u79cd\u7cfb\u7edf\u529f\u80fd\u4ee3\u7801\uff0c\u4f8b\u5982\uff1a\u52a0\u5165\u65e5\u5fd7\u3001\u6743\u9650\u5224\u65ad\u3001\u5f02\u5e38\u5904\u7406\u7b49\uff0c\u8fd9\u79cd\u5e94\u7528\u6210\u4e3aAOP\u3002
\u5b9e\u73b0AOP\u529f\u80fd\u91c7\u7528\u7684\u662f\u4ee3\u7406\u6280\u672f\uff0c\u5ba2\u6237\u7aef\u7a0b\u5e8f\u4e0d\u518d\u8c03\u7528\u76ee\u6807\uff0c\u800c\u8c03\u7528\u4ee3\u7406\u7c7b\uff0c\u4ee3\u7406\u7c7b\u4e0e\u76ee\u6807\u7c7b\u5bf9\u5916\u5177\u6709\u76f8\u540c\u7684\u65b9\u6cd5\u58f0\u660e\uff0c\u6709\u4e24\u79cd\u65b9\u5f0f\u53ef\u4ee5\u5b9e\u73b0\u76f8\u540c\u7684\u65b9\u6cd5\u58f0\u660e\uff0c\u4e00\u662f\u5b9e\u73b0\u76f8\u540c\u7684\u63a5\u53e3\uff0c\u800c\u662f\u4f5c\u4e3a\u76ee\u6807\u7684\u5b50\u7c7b\u5728JDK\u4e2d\u91c7\u7528Proxy\u7c7b\u4ea7\u751f\u52a8\u6001\u4ee3\u7406\u7684\u65b9\u5f0f\u4e3a\u67d0\u4e2a\u63a5\u53e3\u751f\u6210\u5b9e\u73b0\u7c7b\uff0c\u5982\u679c\u8981\u4e3a\u67d0\u7c7b\u4e2a\u751f\u6210\u5b50\u7c7b\uff0c\u5219\u53ef\u4ee5\u7528CGLIB\u3002
\u5728\u751f\u6210\u7684\u4ee3\u7406\u7c7b\u7684\u65b9\u6cd5\u4e2d\u52a0\u5165\u7cfb\u7edf\u529f\u80fd\u548c\u8c03\u7528\u76ee\u6807\u7c7b\u7684\u76f8\u5e94\u65b9\u6cd5\uff0c\u7cfb\u7edf\u529f\u80fd\u7684\u4ee3\u7406\u4ee5Advice\u5bf9\u8c61\u8fdb\u884c\u63d0\u4f9b\uff0c\u663e\u7136\u8981\u521b\u5efa\u51fa\u4ee3\u7406\u5bf9\u8c61\uff0c\u81f3\u5c11\u9700\u8981\u76ee\u6807\u7c7b\u548cAdvice\u7c7b\u3002
Sping\u63d0\u4f9b\u4e86\u8fd9\u79cd\u652f\u6301\uff0c\u53ea\u9700\u8981\u5728Sping\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e\u8fd9\u4e24\u4e2a\u5143\u7d20\u5373\u53ef\u5b9e\u73b0\u4ee3\u7406\u548cAop\u529f\u80fd\uff0c
\u4f8b\u5982\uff1a





Spring的AOP面向切面编程,就是横向的,比如程序运行时都要建日志,相当于SQL的触发器。

Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。



首先楼主需要明白“事物处理”的概念
AOP主要是针对事物处理来说吧,而且是相对于以前的编程式事物处理的,不用AOP的话,我们得通过硬编码的方式将事物处理写在方法中,有了AOP之后,我们只需要在spring的配置文件中配置一下事物就可以了,这就叫声明式事物处理.一般配置时是通过配置匹配某个格式的方法名,当运行到这种方法的时候spring就会拦截下它来,并给它加上事物的处理了
通俗点讲spring的AOP相当与电脑中主板的作用。主板:就是把各种元器件连接到其上,统一由其管理,避免了元器件与与器件之间连接的混乱。
不知这么说你有没有明白一些

  • 濡備綍鐞嗚ВSpring鐨凙OP?
    绛旓細1銆佹柟渚胯В鑰︼紝绠鍖栧紑鍙 閫氳繃Spring鎻愪緵鐨処oC瀹瑰櫒锛屾垜浠彲浠ュ皢瀵硅薄涔嬮棿鐨勪緷璧栧叧绯讳氦鐢盨pring杩涜鎺у埗锛岄伩鍏嶇‖缂栫爜鎵閫犳垚鐨勮繃搴︾▼搴忚﹀悎銆傛湁浜哠pring锛岀敤鎴蜂笉蹇呭啀涓哄崟瀹炰緥妯″紡绫汇佸睘鎬ф枃浠惰В鏋愮瓑杩欎簺寰堝簳灞傜殑闇姹傜紪鍐欎唬鐮侊紝鍙互鏇翠笓娉ㄤ簬涓婂眰鐨勫簲鐢ㄣ2銆丄OP缂栫▼鐨勬敮鎸 閫氳繃Spring鎻愪緵鐨凙OP鍔熻兘锛屾柟渚胯繘琛岄潰鍚戝垏闈㈢殑...
  • Spring AOP鏄粈涔堟剰鎬 ,澶ц櫨瑙i噴閫氫織涓鐐,涓嶈澶笓涓,涓句緥璇存槑鏄撴噦涓鐐...
    绛旓細鍒囬潰缂栫▼锛屽氨鏄湪浣犻」鐩師鏈夌殑鍔熻兘鍩虹涓婏紝閫氳繃AOP鍘绘坊鍔犳柊鐨勫姛鑳斤紝杩欎簺鍔熻兘鏄缓绔嬪湪鍘熸湁鍔熻兘鐨勫熀纭涓婄殑锛岃屼笖鍘熸湁鐨勫姛鑳藉苟涓嶇煡閬撲綘宸茬粡娣诲姞浜嗘柊鐨勫姛鑳姐傛瘮濡傝锛屼綘鍘籄TM鍙栭挶锛屽彇閽辨槸涓涓姛鑳斤紝鍙栧畬閽卞悗鍚戜綘鐨勬墜鏈哄彂閫佷竴鏉″彇閽变俊鎭紝杩欏氨鏄柊鍔犵殑鍔熻兘銆
  • Spring涓殑ioc鍜宎op鏈変粈涔堜綔鐢?涓轰粈涔堣鐢╥oc鍜aop?闈㈣瘯涓娆¤闂埌...
    绛旓細AOP锛氶潰鍚戝垏闈紝鏄竴绉嶇紪绋嬫濇兂锛孫OP鐨勫欢缁銆傚皢绯荤粺涓潪鏍稿績鐨勪笟鍔℃彁鍙栧嚭鏉ワ紝杩涜鍗曠嫭澶勭悊銆傛瘮濡備簨鍔°佹棩蹇楀拰瀹夊叏绛夈傝繖涓畝鍗曟潵璇村氨鏄彲浠ュ湪涓娈电▼搴忎箣鍓嶆垨鑰呬箣鍚庡仛涓浜涗簨銆係pring 鐨凙OP鍜孖OC閮芥槸涓轰簡瑙e喅绯荤粺浠g爜鑰﹀悎搴﹁繃楂樼殑闂銆備娇浠g爜閲嶇敤搴﹂珮銆佹槗浜庣淮鎶ゃ備笉杩嘇OP鍜孖OC骞朵笉鏄痵pring涓壒鏈夌殑锛屽彧鏄痵pri...
  • spring aop 鏄粈涔堟剰鎬
    绛旓細Spring AOP鏄紪绋嬫鏋 AOP鏄疧OP鐨勫欢缁紝鏄疉spect Oriented Programming鐨勭缉鍐欙紝鎰忔濇槸闈㈠悜鏂归潰缂栫▼銆侫OP瀹為檯鏄疓oF璁捐妯″紡鐨勫欢缁紝璁捐妯″紡瀛滃瓬涓嶅﹁拷姹傜殑鏄皟鐢ㄨ呭拰琚皟鐢ㄨ呬箣闂寸殑瑙h︼紝AOP鍙互璇翠篃鏄繖绉嶇洰鏍囩殑涓绉嶅疄鐜般
  • 瑙i噴Spring涓IOC, DI, AOP
    绛旓細aop灏辨槸闈㈠悜鍒囬潰鐨勭紪绋銆傛瘮濡傝浣犳瘡鍋氫竴娆″鏁版嵁搴撴搷浣滐紝閮借鐢熸垚涓鍙ユ棩蹇椼傚鏋滐紝浣犲鏁版嵁搴撶殑鎿嶄綔鏈夊緢澶氱被锛岄偅浣犳瘡涓绫讳腑閮借鍐欏叧浜庢棩蹇楃殑鏂规硶銆備絾鏄鏋滀綘鐢╝op锛岄偅涔堜綘鍙互鍐欎竴涓柟娉曪紝鍦ㄨ繖涓柟娉曚腑鏈夊叧浜庢暟鎹簱鎿嶄綔鐨勬柟娉曪紝姣忎竴娆¤皟鐢ㄨ繖涓柟娉曠殑鏃跺欙紝灏卞姞涓婄敓鎴愭棩蹇楃殑鎿嶄綔銆傝鐨勪笉鏄緢娓呮櫚锛屽鍐...
  • 绠杩颁綘瀵Spring妗嗘灦IOC鍜AOP鐨勭悊瑙銆
    绛旓細缁勬垚 Spring 妗嗘灦鐨勬瘡涓ā鍧楋紙鎴栫粍浠讹級閮藉彲浠ュ崟鐙瓨鍦紝鎴栬呬笌鍏朵粬涓涓垨澶氫釜妯″潡鑱斿悎瀹炵幇銆Spring 鐨搴旂敤绋嬪簭涓殑瀵硅薄鎻愪緵浜嗕簨鍔$鐞嗘湇鍔°傞氳繃浣跨敤 Spring AOP锛屼笉鐢ㄤ緷璧 EJB 缁勪欢锛屽氨鍙互灏嗗0鏄庢т簨鍔$鐞嗛泦鎴愬埌搴旂敤绋嬪簭涓係pring MVC 妗嗘灦锛歁VC 妗嗘灦鏄竴涓叏鍔熻兘鐨勬瀯寤 Web 搴旂敤绋嬪簭鐨 MVC 瀹炵幇銆
  • Spring AOP鐨勪竴浜涙蹇
    绛旓細AOP浠g悊锛圓OP Proxy锛 AOP妗嗘灦鍒涘缓鐨勫璞 鐢ㄦ潵瀹炵幇鍒囬潰濂戠害锛坅spect contract锛夛紙鍖呮嫭閫氱煡鏂规硶鎵ц绛夊姛鑳斤級 鍦Spring涓 AOP浠g悊鍙互鏄疛DK鍔ㄦ佷唬鐞嗘垨鑰匔GLIB浠g悊 娉ㄦ剰 Spring 鏈鏂板紩鍏ョ殑鍩轰簬妯″紡锛坰chema based锛夐鏍煎拰@AspectJ娉ㄨВ椋庢牸鐨勫垏闈㈠0鏄 瀵逛簬浣跨敤杩欎簺椋庢牸鐨勭敤鎴锋潵璇 浠g悊鐨勫垱寤烘槸閫忔槑鐨 缁囧叆锛圵eaving锛...
  • spring 妗嗘灦鐨勯潰鍚戝垏闈㈢紪绋濡備綍鐞嗚В?
    绛旓細鍦ㄧ敓鎴愮殑浠g悊绫荤殑鏂规硶涓姞鍏ョ郴缁熷姛鑳藉拰璋冪敤鐩爣绫荤殑鐩稿簲鏂规硶锛岀郴缁熷姛鑳界殑浠g悊浠dvice瀵硅薄杩涜鎻愪緵锛屾樉鐒惰鍒涘缓鍑轰唬鐞嗗璞★紝鑷冲皯闇瑕佺洰鏍囩被鍜孉dvice绫汇係ping鎻愪緵浜嗚繖绉嶆敮鎸侊紝鍙渶瑕佸湪Sping閰嶇疆鏂囦欢涓厤缃繖涓や釜鍏冪礌鍗冲彲瀹炵幇浠g悊鍜Aop鍔熻兘锛屼緥濡傦細<bean id = "proxy" type = "org.spring.framework.aop....
  • Spring涓殑AOP鎬庝箞鐞嗚В
    绛旓細鏈绠鍗曠殑渚嬪瓙锛屽仛涓涓暟鎹垹闄ゆ搷浣滆姹傚啓鏃ュ織 娌℃湁AOP鐨勬儏鍐碉細1.鍒犻櫎鏁版嵁浠g爜 2.娣诲姞鏃ュ織浠g爜 鏈堿OP锛氾紙娣诲姞鏃ュ織锛堝垹闄ゆ暟鎹級锛夌瓑浜庡氨鏄綘涓嶅啀闇瑕佹墜鍔ㄥ啓娣诲姞鏃ュ織鐨勪唬鐮佷簡锛岀浉褰撲簬鎶婂垹闄ゆ暟鎹殑浠g爜鏀惧叆浜嗕竴涓垏闈腑锛屽畠鑷繁浼氳Е鍙戞坊鍔犳棩蹇楃殑浠g爜 ...
  • spring aop 骞蹭粈涔堢敤
    绛旓細鍩轰簬Spring鐨凙OP绠鍗曞疄鐜版敞鎰忎竴涓,鍦ㄨ瑙d箣鍓,璇存槑涓鐐:浣跨敤Spring AOP,瑕佹垚鍔熻繍琛岃捣浠g爜,鍙敤Spring鎻愪緵缁欏紑鍙戣呯殑jar鍖呮槸涓嶅鐨,璇烽澶栦笂缃戜笅杞戒袱涓猨ar鍖:1銆乤opalliance.jar2銆乤spectjweaver.jar寮濮嬭瑙g敤Spring AOP鐨刋ML瀹炵幇鏂瑰紡,鍏堝畾涔変竴涓帴鍙:public interface HelloWorld{ void printHelloWorld(); void do...
  • 扩展阅读:springer官网入口 ... 简述什么是spring aop ... 怎么理解spring的ioc和aop ... spring aop实现方式 ... 如何实现spring aop ... spring框架aop的理解 ... spring app安卓版下载 ... 谈谈你对spring的理解 ... 面试中spring的aop理解 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网