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

织梦cms仿网站教程seo属于技术还是营销

织梦cms仿网站教程,seo属于技术还是营销,网站建设毕业设计目录,双十一网站建设AOP对象是如何创建的 对于熟悉Spring IOC流程源码的同学来说,一定了解bean的整个生命周期,也就是从实例化、属性填充、初始化三个过程。那么对于Bean 工厂来说,是如何保证需要创建代理的对象创建代理的呢。 从图中可以看到,本质…

AOP对象是如何创建的

对于熟悉Spring IOC流程源码的同学来说,一定了解bean的整个生命周期,也就是从实例化、属性填充、初始化三个过程。那么对于Bean 工厂来说,是如何保证需要创建代理的对象创建代理的呢。
在这里插入图片描述
从图中可以看到,本质是通过注解 @EnableAspectJAutoProxy, 通过引入 @Import(AspectJAutoProxyRegistrar.class)
在这里插入图片描述
顶层其实就是一个BPP
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
核心调用流程图就在这里,这里可以通过debug的方式查找。

在这里插入图片描述

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(MyAopAspectJPostProcessor.class)
public @interface MyEnableAspectjAutoProxy {
}
@Configuration
@ComponentScan("com.qxlx.aopprocessor")
@MyEnableAspectjAutoProxy
public class Config {}

最终通过自定义注解的方式 也实现了这种一个简易版本的AOP

详解 @EnableAspectJAutoProxy

proxyTargetClass

	/*** Indicate whether subclass-based (CGLIB) proxies are to be created as opposed* to standard Java interface-based proxies. The default is {@code false}.*/boolean proxyTargetClass() default false;

其实就是是否基于CGlib进行动态代理对于接口,默认时false。

exposeProxy

	/*** Indicate that the proxy should be exposed by the AOP framework as a {@code ThreadLocal}* for retrieval via the {@link org.springframework.aop.framework.AopContext} class.* Off by default, i.e. no guarantees that {@code AopContext} access will work.* @since 4.3.1*/boolean exposeProxy() default false;	 

其实这个字段的含义就是从4.3.1 版本开始,如果设置为true的话,会把当前对象的代理对象存储到ThreadLocal对象中。

		// 可以用来解决 本类同方法调用事务失效时 获取代理对象IUserService userService = (IUserService) AopContext.currentProxy();userService.delete();

其实就是根据exposeProxy的值 判断是否true,将当前代理对象存储到ThreadLocal中。

        // JdkDynamicAopProxy 代理if (this.advised.exposeProxy) {// Make invocation available if necessary.oldProxy = AopContext.setCurrentProxy(proxy);setProxyContext = true;}
// 本质其实就是ThreadLocal private static final ThreadLocal<Object> currentProxy = new NamedThreadLocal<>("Current AOP proxy");

AnnotationAwareAspectJAutoProxyCreator

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
再往下看的话 其实就是分别JDK和Cglib生成代理的代码了。
在这里插入图片描述

1.BeanPostProcess创建代理。考虑循环引用问题
2.ProxyFactory
setTarget、setAdvisor、
3.底层的代码
AOPProxy
CglibAopProxy
JdkDnmiacAopProxy

1.AOP创建了动态代理
2.动态字节码动态 运行时执行 是如何执行的?
代理是在运行的过程中,才会把原始对象的功能与额外功能进行整合。
动态代理 运行效率低于静态代理

代理类执行过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里总整体进行总结下,一个是代理对象的生成,是在bean after BPP阶段进行调用生成的,另外一个就是实际方法的调用就是在原有的类基础上代理类加了拦截表达式,根据表达式判断当前方法是否需要执行对应的前置 后置 等方法,完整额外功能的添加。

在这里插入图片描述
感兴趣的可以通过 看 具体的源码

https://github.com/qxlx/spring-code/blob/main/src/main/java/com/qxlx/aopprocessor/

http://www.ds6.com.cn/news/101068.html

相关文章:

  • 宜兴做网站多少钱公司策划推广
  • 嘉兴做网站建设的公司软件开发需要学什么
  • 东阿聊城做网站的公司360推广
  • wordpress http.php合肥seo优化公司
  • 工艺宣传网站建设网络营销策划方案800字
  • 建站塔山双喜杭州seo搜索引擎优化
  • 商家做网站的优点超级软文网
  • 长沙网站建设搜狐综合小时报2022113011
  • 合肥网上商城网站建设挖掘关键词爱站网
  • 手机网站开发软件下载关键词优化排名平台
  • 新手小白如何互联网创业杭州seo搜索引擎优化
  • 泰州cms建站模板网站建设公司推荐
  • 电子政务平台官网广州网站排名专业乐云seo
  • 广西响应式网站制作北京seo站内优化
  • 俄罗斯代购网站设计东莞市民最新疫情
  • 苏州做网站的公司常见的网络直接营销有哪些
  • 域名对网站seo的影响吗广东东莞最新疫情
  • 哪个网站可以做教师招聘题目网店营销策划方案
  • 在线做任务的网站管理微信软件
  • 苏州门户网站建设优化搜索点击次数的方法
  • vs做网站创建项目时选哪个黄山网站建设
  • 网站建设岗位计算机培训班
  • 有没有必要给企业做网站qq代刷网站推广
  • 增城门户网站沈阳网站制作优化推广
  • 松江区做网站注册公司流程和费用
  • 企业网站建设公司 丰台百度推广代理公司
  • word怎么做网站链接营销技巧美剧
  • seo网站推广经理招聘百度发布信息怎么弄
  • 网站开发毕业设计任务书如何快速推广一个app
  • wordpress改变url天津seo推广优化