中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做電商網(wǎng)站價(jià)錢16種營銷模型

做電商網(wǎng)站價(jià)錢,16種營銷模型,設(shè)計(jì)門戶網(wǎng)站,全網(wǎng)最新首碼項(xiàng)目#### AOP(面向切面編程)作用及其優(yōu)勢(shì) 作用:在程序運(yùn)行期間,在不修改源碼的情況下對(duì)方法進(jìn)行功能增強(qiáng)(通知) 優(yōu)勢(shì):減少重復(fù)代碼,提高代碼復(fù)用性,提高代碼可維護(hù)性&#xf…
#### AOP(面向切面編程)作用及其優(yōu)勢(shì)
作用:在程序運(yùn)行期間,在不修改源碼的情況下對(duì)方法進(jìn)行功能增強(qiáng)(通知)
優(yōu)勢(shì):減少重復(fù)代碼,提高代碼復(fù)用性,提高代碼可維護(hù)性,提高代碼可擴(kuò)展性
#### AOP的底層實(shí)現(xiàn)原理
動(dòng)態(tài)代理:JDK動(dòng)態(tài)代理 【基于接口的動(dòng)態(tài)代理技術(shù)】(基于反射)、CGLIB動(dòng)態(tài)代理【基于父類的動(dòng)態(tài)代理技術(shù)】
實(shí)際上,AOP的底層是通過Spring提供的動(dòng)態(tài)代理技術(shù)實(shí)現(xiàn)的。在運(yùn)行期間,Spring通過動(dòng)態(tài)代理技術(shù)動(dòng)態(tài)生成代理對(duì)象,代理對(duì)象方法執(zhí)行時(shí)進(jìn)行增強(qiáng)功能(通知)的介入,再去調(diào)用目標(biāo)對(duì)象的方法(系統(tǒng)功能),從而完成功能的增強(qiáng)。
+ JDK動(dòng)態(tài)代理:要實(shí)現(xiàn)InvocationHandler接口(java.lang.reflect.InvocationHandler),重寫invoke方法,通過Proxy.newProxyInstance()方法創(chuàng)建代理對(duì)象。(反射)
+ Cglib動(dòng)態(tài)代理:要實(shí)現(xiàn)MethodInterceptor接口(org.springframework.cglib.proxy.MethodInterceptor),重寫intercept方法,通過Enhancer.create()方法創(chuàng)建代理對(duì)象
// 可以在啟動(dòng)時(shí),設(shè)置保存生成的代理類文件
System.getProperties().put( "sun.misc.ProxyGenerator.saveGeneratedFiles" , "true" );
#### AOP的相關(guān)概念
+ Target:目標(biāo)對(duì)象,被代理的對(duì)象
+ Proxy:代理對(duì)象,代理目標(biāo)對(duì)象
+ Joinpoint:連接點(diǎn),目標(biāo)對(duì)象中可以被增強(qiáng)的方法
+ Pointcut:切入點(diǎn),被增強(qiáng)的方法集合(對(duì)哪些Joinpoint進(jìn)行攔截的定義)
+ Advice:通知,增強(qiáng)的代碼(攔截到Joinpoint后要執(zhí)行的代碼)
+ Aspect:切面,切入點(diǎn)+通知
+ Weaving:織入,將通知應(yīng)用到目標(biāo)對(duì)象并創(chuàng)建代理對(duì)象的過程
#### AOP源碼解析
1.須知:
-.在使用ApplicationContentext相關(guān)實(shí)現(xiàn)類加載ben的時(shí)候,會(huì)針對(duì)所有單例且非懶加載的bean,在構(gòu)造ApplicationContext的時(shí)候就會(huì)創(chuàng)建好這些bean,而不會(huì)
等到使用的時(shí)候才會(huì)創(chuàng)建。這也就是單例bean默認(rèn)非懶加載的應(yīng)用。
-.讀者需要了解BeanPostProcessor接口,這個(gè)接口是Spring提供的一個(gè)擴(kuò)展接口,用于在bean初始化前后做一些處理工作。
- 結(jié)合以上兩點(diǎn),被代理后的bean,實(shí)際在ApplicationContext構(gòu)造完成之后就已經(jīng)被創(chuàng)建完成,getBean()的操作直接從singletonObjects中獲取即可。
2. 注冊(cè)自動(dòng)代理創(chuàng)建器
- 但凡注解都有對(duì)應(yīng)的解析器,以用來解析該注解的行為。而且所有的解析器父類為:NamespaceHandlerSupport,這個(gè)類是用來解析xml配置文件的。(可以通過調(diào)用鏈查看)
- 解析xml配置文件的時(shí)候,會(huì)調(diào)用NamespaceHandlerSupport的init()方法,這個(gè)方法會(huì)調(diào)用registerBeanDefinitionParser()方法,這個(gè)方法會(huì)將解析器注冊(cè)到一個(gè)map中。
- Spring中將標(biāo)簽分為兩大類:default(默認(rèn))和custom(拓展)
default namespace 涉及到的只有四個(gè)標(biāo)簽:import、alias、bean、beans  【使用方法parseDefaultElement(ele,delegate)】
custom namespace 涉及到的標(biāo)簽:mvc、task、context、aop等
- 以aop為例,解析器為AopNamespaceHandler,解析器會(huì)調(diào)用registerBeanDefinitionParser()方法,將解析器(AspectJAutoProxyBeanDefinitionParser)注冊(cè)到一個(gè)map中。AspectJAutoProxyBeanDefinitionParser實(shí)現(xiàn)了BeanDefinitionParser接口,重寫了parse()方法,這個(gè)方法會(huì)調(diào)用registerAutoProxyCreatorIfNecessary()方法【將AnnotationAwareAspectJAutoProxyCreator注冊(cè)到Spring容器中,把bean交給spring去托管】
- 查看AnnotationAwareAspectJAutoProxyCreator的類層次結(jié)構(gòu),可知其父類為AbstractAutoProxyCreator,這個(gè)類實(shí)現(xiàn)了BeanPostProcessor接口,重寫了postProcessAfterInitialization()方法(模板方法)
- 通過調(diào)用鏈查看,AnnotationAwareAspectJAutoProxyCreator的postProcessAfterInitialization()方法會(huì)調(diào)用wrapIfNecessary()方法,這個(gè)方法會(huì)調(diào)用createProxy()方法(將所有有Advice的bean重新包裝成proxy)
3. 執(zhí)行邏輯:代理對(duì)象創(chuàng)建好后,其攔截方法的操作都是交給Methodinvocation去做,JdkDynamicAopProxy交給ReflectiveMethodInvocation,ObjenesisCglibAopProxy交給CglibMethodInvocation.
類的繼承關(guān)系(父->子)前面三個(gè)都是aopalliance下的
Joinpoint->Invocation->MethodInvocation(org.aopalliance.intercepet.MethodInvocation)->ProxyMethodInvocation->ReflectiveMethodInvocation->CglibMethodInvocation
這里說明一下JdkDunamicAopProxy的proceed()[繼承自JoinPoint,執(zhí)行鏈執(zhí)行]方法
//這里是JdkDynamicAopProxy的執(zhí)行的核心,要執(zhí)行方法,執(zhí)行通知都在這里搞定[遞歸調(diào)用,執(zhí)行所有過濾器鏈的邏輯]
```
@Override
@Nullable
public Object proceed() throws Throwable {//this.currentInterceptorIndex初始值為-1,如果執(zhí)行到執(zhí)行鏈的末尾,則直接調(diào)用連接點(diǎn)方法(即目標(biāo)方法)if(this.currentInterceptorIndex == this.interceptorsAndDynamicMethodMathers,size() -1){//該方法內(nèi)部邏輯調(diào)用目標(biāo)方法return invokeJoinponit();}//獲取集合中的MethodInterceptor,執(zhí)行鏈索引加1(這里的+1保證是遞歸調(diào)用而不是循環(huán)調(diào)用)Object interceptorOrInterceptionAdvice = this.interceptorsAndDynamicMethodMathers.get(++this.currentInterceptorIndex);//InterceptorAndDynamicMethodMacher有兩個(gè)屬性MethodInterceptor,MethodMatcher,看看在advisor chain是否能夠匹配上if(interceptorOrInterceptionAdvice instanceof InterceptorAndDynamicMethodMacher){InterceptorAndDynamicMethodMacher dm = (InterceptorAndDynamicMethodMacher) interceptorOrInterceptionAdvice;//判斷攔截器是否適用這個(gè)目標(biāo)方法,是 執(zhí)行這個(gè)攔截器 否 跳過這個(gè)攔截器進(jìn)入下一個(gè)攔截器if(dm.methodMatcher.matches(this.method,this.targetClass,this.arguments)){//攔截器的內(nèi)部,除自己邏輯外,也會(huì)有mi.proceed()保證執(zhí)行到下一個(gè)攔截器return dm.interceptor.invoke(this);}else{return proceed();}}else {//MethodInterceptor直接執(zhí)行(只有匹配上的方法才會(huì)在攔截器鏈中)return ((MethodInterceptor)interceptorOrInterceptionAdvice).invoke(this);}
}
```

http://www.risenshineclean.com/news/37507.html

相關(guān)文章:

  • 怎樣做淘寶網(wǎng)站建設(shè)電商網(wǎng)站平臺(tái)搭建
  • 做網(wǎng)站 當(dāng)站長(zhǎng)紹興seo排名外包
  • 給政府做網(wǎng)站怎么報(bào)價(jià)深圳網(wǎng)站建設(shè)服務(wù)
  • 青島網(wǎng)站站長(zhǎng)之家權(quán)重查詢
  • 網(wǎng)站會(huì)員功能長(zhǎng)春seo排名
  • 用vue框架做的網(wǎng)站網(wǎng)站建設(shè)網(wǎng)站
  • 網(wǎng)站開發(fā)技術(shù)路線網(wǎng)站制作流程和方法
  • 關(guān)于政府補(bǔ)貼企業(yè)做網(wǎng)站的事免費(fèi)推廣引流平臺(tái)
  • 精品課程網(wǎng)站建設(shè) 碧輝騰樂發(fā)稿網(wǎng)
  • 網(wǎng)站的外鏈?zhǔn)鞘裁醋鼍W(wǎng)站公司哪家正規(guī)
  • 如何用網(wǎng)頁設(shè)計(jì)制作個(gè)人網(wǎng)站seo優(yōu)化包括
  • 純色直播河南seo外包
  • android 做分享的網(wǎng)站seo的中文含義是
  • 做網(wǎng)站買了域名之后谷歌搜索官網(wǎng)
  • 學(xué)做網(wǎng)站平臺(tái)建立網(wǎng)站需要多少錢
  • 推廣方案如何寫南京網(wǎng)絡(luò)優(yōu)化公司有哪些
  • 抖音代運(yùn)營服務(wù)協(xié)議網(wǎng)絡(luò)快速排名優(yōu)化方法
  • 構(gòu)建動(dòng)態(tài)網(wǎng)站設(shè)計(jì)網(wǎng)絡(luò)公關(guān)公司聯(lián)系方式
  • 清遠(yuǎn)專業(yè)網(wǎng)站建設(shè)服務(wù)網(wǎng)頁設(shè)計(jì)工作室長(zhǎng)沙
  • 為什么要立刻做網(wǎng)站時(shí)事熱點(diǎn)新聞
  • 做a三級(jí)視頻在線觀看網(wǎng)站上海seo優(yōu)化bwyseo
  • 如何進(jìn)行企業(yè)營銷型網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)規(guī)劃
  • 網(wǎng)站開發(fā)有幾種語言網(wǎng)站推廣的常用途徑有哪些
  • 觸摸屏html網(wǎng)站搜索引擎哪個(gè)好用
  • 地方門戶類網(wǎng)站有哪些seo策略主要包括
  • 南京凱盛建設(shè)集團(tuán)官方網(wǎng)站網(wǎng)絡(luò)營銷推廣專家
  • 網(wǎng)站入口設(shè)計(jì)規(guī)范seo優(yōu)化培訓(xùn)課程
  • 怎么把園林設(shè)計(jì)網(wǎng)站做的酷炫網(wǎng)絡(luò)推廣方案范文
  • 做網(wǎng)站用動(dòng)易siteweaver cms還是phpcms精準(zhǔn)客戶信息一條多少錢
  • b2b電子商務(wù)網(wǎng)站的盈利模式有哪些中國十大小說網(wǎng)站排名