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

网站设计开发制作不用开源做网站

网站设计开发制作,不用开源做网站,2021年十大热点事件,python如何做网站SpringBoot run方法代码如下#xff1a; 可以看到它会调用refreshContext方法来刷新Spring容器#xff0c;这个refreshContext方法最终会调用AbstractApplicationContext的refresh方法#xff0c;代码如下 如上图#xff0c;refresh方法最终会调用finisheBeanFactoryInit…SpringBoot run方法代码如下 可以看到它会调用refreshContext方法来刷新Spring容器这个refreshContext方法最终会调用AbstractApplicationContext的refresh方法代码如下 如上图refresh方法最终会调用finisheBeanFactoryInitialization方法代码如下 从上图可以看出它最终会调用preInstantiateSingletons方法来实例化单例的bean,代码如下 其中每一个bean创建时都要调用getBean方法getBean代码如下 如上图getBean调用doGetBean, doGetBean代码如下 整体逻辑就是先从缓存中获取bean,如果为空则调用createBean来创建bean,createBean代码如下 从上图看到createBean调用了doCreateBean来完成bean创建doCreateBean代码如下 从上图可以看到doCreateBean调用了initializeBean来完成对bean的初始化initializeBean代码如下 从上图可以看到它调用了applyBeanPostProcessorsAfterInitialization这个方法代码如下 可以看到applyBeanPostProcessorsAfterInitialization中获取了Spring容器中所有的BeanPostProcessor,然后调用它们的postProcessAfterInitialization方法来对bean进行后置处理而可能的代理对象就是通过BeanPostProcessor生成的。而InfrastructureAdvisorAutoProxyCreator这个BeanPostProcessor就是来完成代理对象生成的(当然前提是加了Transactional注解否则不会生成代理对象会直接返回原始对象 InfrastructureAdvisorAutoProxyCreator的postProcessAfterInitialization代码如下 其中调用了wrapIfNecessary方法wrapIfNecessary代码如下 从上图我们看到如果specificInterceptors不为空则会去生成代理对象并返回否则直接将原始对象返回。 getAdvicesAndAdvisorsForBean代码如下 它调用了findEligibleAdvisors方法代码如下 findEligibleAdvisors首先从Spring容器中获取所有的Advisor然后调用findAdvisorsThatCanApply来获取可以应用的Advisor,findAdvisorsThatCanApply代码如下 它调用了AopUtils的静态方法findAdvisorsThatCanApply方法代码如下 其中调用的canApply方法代码如下 其中调用的canApply代码如下 其中调用的matches方法代码如下 其中调用的getTransactionAttribute方法代码如下 其中调用的computeTrasactionAttribute代码如下 其中调用的findTransactionAttribute代码如下 其中调用的determineTransactionAttribute代码如下 其中会分别调用Spring容器中的TransactionAttributeParser进行注解分析实际上只有一个SpringTransactionAttributeParser,SpringTransactionAttributeParser的parseTransactionAnnotation代码如下 从上图可以看到要从传入的元素实际就是我们定义的业务方法来获取它是否包含Transactional注解如果包含则调用parseTransactionAnnotation来获取注解上配置的事务相关的属性也就是在Transactional注解上配置的那些值) 因此最终决定是否生成代理对象的是parseTransactionAnnotation方法的返回值 一步一步往回返最终返回到AbstractAutoProxyCreator的wrapIfNecessary方法 如果parseTransactionAnnotation方法返回的是null,则这里的specificInterceptors为空不会生成代理对象。 如果parseTransactionAnnotation方法返回的不是null,则这里的specificInterceptors大小为1则会调用createProxy创建代理对象。 以上分析了是否要创建代理对象开始分析代理对象的创建过程。createProxy代码如下 可以看到首先new出一个Proxy,然后设置targetSource(也就是bean的原始类型和用于事务处理的Advisor,最有调用getProxy,getProxy代码如下 其中调用的createAopProxy代码如下 其中调用的createAopProxy代码如下 默认情况下SpringBoot会使用ObjenesisCglibAopProxy,如上图。ObjenesisCglibAopProxy的getProxy代码如下 可以看到它最终会调用createProxyClassAndInstance方法来创建出代理对象它的代码如下
http://www.hkea.cn/news/14458008/

相关文章:

  • 网站建设服务公司有用吗网络服务商不提供哪项服务
  • 深圳做网站应该怎么做提供网站制作公司哪家好
  • 南阳商城站站长之家app
  • 嘉兴网站快照优化公司公示网企业公示信息查询系统
  • 设计和建设企业网站心得和体会青岛模板网站
  • 沈阳设计网站公司网站网站配色绿色
  • 做360手机网站优化快做网站的资料修改
  • c语言做网站账号登录系统痘痘如何去除效果好
  • 网站不用域名可以吗青岛网站建设eoe
  • 夫妻网络网站建设为什么wordpress慢
  • 寻找建设网站客户优秀的网站有哪些
  • 公司做的网站账务处理河南郑州旅游攻略必玩的景点
  • 深圳网站建设代理商做外贸用什么网站
  • 定制做网站设计幸运28网站建设
  • 上海专业的网站建设设计网站收费
  • 广州市网站建设wordpress导入网站文章
  • 如何制作网站图片佛山建设网站制作
  • 东营网站制作专业商城网站建设报价单
  • 英语营销型网站建设建设俄语网站
  • 西安网站建设官网个人网站设计构思
  • 如何做网站支付链接软件需求分析文档范例
  • 大唐网站建设注册城乡规划师成绩查询
  • 奇趣网做网站公司网站开发的流程
  • 做商城型网站公司建立网站的好处
  • 我要在58上面做网站网络营销的机遇和挑战
  • 12380网站建设打算wordpress 3.1.3
  • 建设网站的企业是什么做钢材的网站
  • 潍坊做网站多少钱网页设计公司未来三年费用利润
  • 网站怎么关闭利用黑群晖做网站
  • 韶关市建设工程造价网站放单网站