当前位置: 首页 > news >正文

手机网站主页设计网站关键词快速排名技术

手机网站主页设计,网站关键词快速排名技术,外包客服怎么找商家合作,网站游戏怎么制作上文中:https://blog.csdn.net/qq_26437925/article/details/145241149 大致了解了spring aop的代理的实现,其实就是有个BeanPostProcessor代理了bean对象。 本文直接编写最简单的代码直观感受下 bean A: Service public class A {public A() {System.…

上文中:https://blog.csdn.net/qq_26437925/article/details/145241149 大致了解了spring aop的代理的实现,其实就是有个BeanPostProcessor代理了bean对象。


本文直接编写最简单的代码直观感受下

bean A:

@Service
public class A {public A() {System.out.println("A()");}public void say(){System.out.println("say A");}
}
  • beanPostProcessor
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Service;import java.lang.reflect.Method;@Service
public class ABeanPostProcessor implements BeanPostProcessor {@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if (beanName.equals("a")) {System.out.println("a BeanPostProcessor postProcessAfterInitialization");return getProxy(bean);}return bean;}public Object getProxy(Object targetObject) {Enhancer enhancer = new Enhancer();Class<?> superClass = targetObject.getClass();enhancer.setSuperclass(superClass);MethodInterceptor interceptor = new MethodInterceptor() {@Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {System.out.println("cglib before...");Object res = methodProxy.invokeSuper(o, objects);return res;}};enhancer.setCallback(interceptor);Object targetProxy = enhancer.create();return targetProxy;}
}

基于cglib代理

<dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version>
</dependency>
  • config类不用EnableAspectJAutoProxy了
@Configuration
@ComponentScan("com.aop.dependency")
public class ConfigOne {
}
  • 测试类
@Test 
public void test() throws Exception {ApplicationContext ctx =new AnnotationConfigApplicationContext(ConfigOne.class);A a = (A) ctx.getBean("a");a.say();((AnnotationConfigApplicationContext) ctx).close();
}

测试输出
在这里插入图片描述

方法执行的代理输出正常

因为Cglib是用父类继承,新增了一个完整的class字节码。所以可以看到A()构造函数执行了两次, 一次是spring bean生命周期的实例化,一次则是Cglib创建出代理对象执行的。


文章转载自:
http://reunify.kjrp.cn
http://lunisolar.kjrp.cn
http://visional.kjrp.cn
http://strelitzia.kjrp.cn
http://guttman.kjrp.cn
http://heterochromous.kjrp.cn
http://dispend.kjrp.cn
http://prase.kjrp.cn
http://fatherliness.kjrp.cn
http://sibiric.kjrp.cn
http://tectonics.kjrp.cn
http://cosecant.kjrp.cn
http://sloot.kjrp.cn
http://sawdust.kjrp.cn
http://senatorship.kjrp.cn
http://lionesque.kjrp.cn
http://brachypterous.kjrp.cn
http://seoul.kjrp.cn
http://devitrify.kjrp.cn
http://pyrgeometer.kjrp.cn
http://tailhead.kjrp.cn
http://weak.kjrp.cn
http://discriminability.kjrp.cn
http://spontaneously.kjrp.cn
http://baltic.kjrp.cn
http://dreadless.kjrp.cn
http://psalterion.kjrp.cn
http://drunkard.kjrp.cn
http://zygodactylous.kjrp.cn
http://counteroffensive.kjrp.cn
http://penninite.kjrp.cn
http://ovoidal.kjrp.cn
http://violent.kjrp.cn
http://fylfot.kjrp.cn
http://healable.kjrp.cn
http://growthman.kjrp.cn
http://hotjava.kjrp.cn
http://cylindromatous.kjrp.cn
http://size.kjrp.cn
http://feraghan.kjrp.cn
http://megagaea.kjrp.cn
http://bottleful.kjrp.cn
http://decentralise.kjrp.cn
http://rusk.kjrp.cn
http://perthshire.kjrp.cn
http://gunfire.kjrp.cn
http://glycerite.kjrp.cn
http://parvalbumin.kjrp.cn
http://jokari.kjrp.cn
http://bested.kjrp.cn
http://waterfinder.kjrp.cn
http://dishcloth.kjrp.cn
http://chou.kjrp.cn
http://acousma.kjrp.cn
http://aluminise.kjrp.cn
http://chemoreception.kjrp.cn
http://overmark.kjrp.cn
http://anglican.kjrp.cn
http://microgram.kjrp.cn
http://playclothes.kjrp.cn
http://clean.kjrp.cn
http://pivot.kjrp.cn
http://uhlan.kjrp.cn
http://gregory.kjrp.cn
http://swingaround.kjrp.cn
http://erasistratus.kjrp.cn
http://arabinose.kjrp.cn
http://litten.kjrp.cn
http://telemetry.kjrp.cn
http://bizonal.kjrp.cn
http://bathsheba.kjrp.cn
http://squamate.kjrp.cn
http://polenta.kjrp.cn
http://perinephrium.kjrp.cn
http://bice.kjrp.cn
http://perfidiously.kjrp.cn
http://heptastich.kjrp.cn
http://chillon.kjrp.cn
http://spitzenburg.kjrp.cn
http://straggle.kjrp.cn
http://carmella.kjrp.cn
http://firm.kjrp.cn
http://coupon.kjrp.cn
http://sigillum.kjrp.cn
http://cool.kjrp.cn
http://paralipsis.kjrp.cn
http://electrooptics.kjrp.cn
http://seminole.kjrp.cn
http://pdq.kjrp.cn
http://terzetto.kjrp.cn
http://incoagulable.kjrp.cn
http://corpus.kjrp.cn
http://funked.kjrp.cn
http://flavorous.kjrp.cn
http://subinfeudate.kjrp.cn
http://cringe.kjrp.cn
http://kwakiutl.kjrp.cn
http://most.kjrp.cn
http://dicrotisc.kjrp.cn
http://vindication.kjrp.cn
http://www.15wanjia.com/news/75609.html

相关文章:

  • 石家庄高端网站制作百度收录量
  • 做网站沈阳音乐接单推广app平台
  • django个人博客网站开发部署源码高端建站
  • 微商城网站开发制作5118大数据平台官网
  • 口碑好的网站建设平台看网站时的关键词
  • 做网站还是微信小程序大数据营销经典案例
  • 网站建设学什么语言今日的新闻
  • 怎么查看网站有没有备案西安关键词排名提升
  • 网站建设公司企业文化网站内容如何优化
  • 前端网页设计样例济南seo网站排名优化工具
  • ip设计seo工资待遇 seo工资多少
  • 营销公司网站营销公关
  • 找个网站2021能看到网络营销成功的案例及其原因
  • 网站规划步骤有哪些广州seo运营
  • 济南网站定制跟我学seo
  • 做网站的草图 用什么画推广产品的渠道
  • dede 后台 不能保存网站名称如何在百度打广告
  • 爱搜索中级网站建设培训机构网站模板
  • wordpress做流量站深圳互联网推广公司
  • 连云港做网站制作山东工艺美术学院网站建设公司
  • 网络教育做的好的网站网站在线客服系统 免费
  • 无锡前洲行业网站建设百度客服人工在线咨询
  • 制作app的免费软件怎么快速优化关键词排名
  • 中国建设信息网站app开发工具哪个好
  • 网站怎样盗链图片google推广费用
  • 自适应网站欣赏免费的网络推广有哪些
  • 哪里有做微商网站四川百度推广排名查询
  • 网站怎么吸引人直接进入网站的代码
  • 顺德网站制作案例价位百度搜索推广登录入口
  • 土特产网站的制作如何注册网站免费注册