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

做h5免费的网站有wordpress php文件上传

做h5免费的网站有,wordpress php文件上传,彩票网站建设dadi163,wordpress 备份 教程spring框架中单例bean是线程安全的吗 不是线程安全的#xff0c;spring框架并没有对单例bean进行任何多线程的封装处理。通常在项目中使用的spring bean都是不可变的状态。如果bean有多种状态的话#xff0c;就需要自行保证线程安全。 什么是AOP#xff1f; aop是面向切面编… spring框架中单例bean是线程安全的吗 不是线程安全的spring框架并没有对单例bean进行任何多线程的封装处理。通常在项目中使用的spring bean都是不可变的状态。如果bean有多种状态的话就需要自行保证线程安全。 什么是AOP aop是面向切面编程在spring中用于将那些与业务无关但却对多个对象产生影响的公共行为和逻辑抽取公共模块复用降低耦合一般比如可以作为公共日志保存事务处理。 可以使用aop中的环绕通知切点表达式这个表达式就是要找到记录日志的方法然后通过环绕通知的参数获取请求方法的参数比如类信息、方法信息、注解等获取到这些信息后保存到数据库。 spring中的事务是如何实现的 spring实现的事务本质就是aop对方法前后进行拦截在执行方法之前开启事务在执行方法之后根据执行情况提交或者回滚事务。 spring中事务失效的场景有哪些 1如果方法上异常捕获处理自己处理了异常没有抛出就会导致事务失败 2如果方法抛出检查异常如果报错也会导致事务失败可以在Transactional上配置rollbackFor属性为Exception这样就会回滚事务。 3如果方法上不是public修饰的也会导致事务失效。 spring中bean的生命周期 1首先通过一个非常重要的类叫做BeanDefinition获取bean的定义信息。包括类的全路径、是否延迟加载、是否是单列。 2创建bean的时候第一步是调用构造函数实例化bean第二步是bean的依赖注入比如一些set方法注入都是用Autowire完成的 3第三步是处理Aware接口如果某个bean实现了Aware接口就会重写方法执行 4第四步是bean的后置处理器BeanPostProcessor这个是前置处理器 5第五步是初始化方法比如实现接口的方法或者自定义了方法 6第六步是执行bean的后置处理器BeanPostProcessor主要是对bean进行增强有可能在这里产生代理对象。 7最后一步是销毁bean spring中bean的循环引用 循环依赖循环依赖其实是循环引用也就是两个或者两个以上的bean互相持有对方最终形成闭环。比如A依赖BB依赖于A。 循环以来在spring中是允许的spring框架的三级缓存解决了大部分的循环依赖 一级缓存单例池缓存已经经历了完整的生命周期已经初始化完成的bean对象 二级缓存缓存早期的bean对象生命周期还没走完 三级缓存缓存的是ObjectFactory表示对象工厂用来创建某个对象。 具体流程如下 第一先实例A对象同时会创建ObjectFactory对象进入三级缓存 第二A在初始化的时候需要B对象这个走B的创建逻辑 第三B实例化完成也会创建ObjectFactory对象进入三级缓存 第四B需要注入A通过三级缓存中获取ObjectFactory来生成一个A的对象同时存入二级缓存中这个是有两种情况一个是可能是A的普通对象另外一个是A的代理对象都可以让ObjectFactory来生产对应的对象 第五B通过从二级缓存获得到A的对象后可以正常注入B创建成功存入一级缓存 第六回到A对象初始化B已经完成了创建则可以直接注入BA创建成功存入一级缓存。 第七二级缓存中的临时对象A清除。 构造方法中出现了循环依赖怎么解决 由于bean的生命周期中构造函数是第一个执行的spring框架并不能解决构造函数的依赖注入可以使用lazy懒加载什么时候需要对象再进行bean的创建。 spring MVC执行流程 1用户发送请求到前端控制器这是一个调度中心 2前端控制器收到请求调用处理器映射器 3处理器映射器找到具体的处理器生成处理器对象以及处理器拦截器再一起返回给前端控制器 4前端控制器调用处理器适配器 5处理器适配器经过适配调用具体的处理器 6处理器执行完成后返回ModelAndView对象 7处理器适配器将处理器执行结果返回给前端控制器 8前端控制器将ModelAndView传给视图解析器 9视图解析器解析后返回具体的视图 10前端控制器根据视图进行渲染视图 11前端控制器响应用户 现在的开发都是前后端分离没有视图这些一般都是处理器中使用response直接将结果返回。 spring自动配置原理 springboot项目中引导类上有一个注解springbootapplication它对三个注解进行了封装其中包括springbootconfiguration、enableautoconfiguration、componentscan。其中enableautoconfiguration是实现自动装配的核心注解。 该注解通过import注解导入对应的配置选择器关键是内部就读取了该项目和该项目引用的jar包的spring.factories文件中所配置的类的全类名。 在这些配置类中所定义的bean会根据条件注解所指定的条件决定是否导入到spring容器中。 mybatis执行流程 1读取mybatis配置文件mybatis-config.xml加载运行环境和映射文件 2构造会话工厂一个项目只需要一个单例的。 3会话工厂创建sqlsession对象这里面包含了执行sql语句的所有方法 4操作数据库的接口executor执行器同时负责查询缓存的维护 5executor接口的执行方法中有一个mappedstatement类型的参数封装了映射信息 6输入参数映射 7输出参数映射 mybatis是否支持延迟加载 支持延迟加载是在需要用到数据的时候才进行加载不需要用的时候不加载数据 mybatis支持一对一关联对象和一对多关联集合对象的延迟加载 默认是关闭状态 延迟加载底层原理 1使用CGLIB创建目标对象的代理对象这里的目标对象就开启了延迟加载的mapper 2当调用方法的时候进入拦截器invoke方法发现目标方法是null值再执行sql查询。 3获取数据以后调用set方法设置属性值再继续查询目标方法就有值了。 mybatis一级二级缓存 mybatis的一级缓存基于perpetualcache的hashmap本地缓存其存储作用域为session当session进行fulsh或close之后该session中的所有cache就将清空默认打开一级缓存 关于二级缓存需要单独开启 二级缓存是基于namesapce和mapper的作用域起作用不是依赖于sqlsession。 如果想要开启二级缓存需要在配置文件和映射文件中开启配置才行。 mybatis的二级缓存什么时候会清理缓存中的数据 当某一个作用域一级缓存session\二级缓存namespaces的进行了新增、修改、删除操作后默认该作用域下所有select中的缓存将被清理。
http://www.zqtcl.cn/news/70534/

相关文章:

  • 珠宝商城网站模板专门找人做软件的网站
  • python做网站有什么弊端深圳网页设计培训中心
  • yiqicms主站调用一级目录wordpress博客的文章?ui设计师创意平台
  • 网站建设公司如何转型上海app定制
  • 做公司网站按年收费视觉差的网站
  • 建设部监理工程师网站河北高端网站设计公司
  • 网站建设业务饱和了吗网站怎么添加栏目
  • 南昌网站建设工作室网站正在紧急建设中
  • 有做软件的网站有哪些品牌logo设计理念介绍
  • 淘宝客做网站要钱吗上海网站营销seo
  • 建网站中企动力能制作网页的软件是
  • 房山网站建设服务家教网站如何建设
  • wordpress 网站上传到服务器错误wordpress基础模板
  • 深圳市建设科技促进中心网站建站 wordpress
  • ai人工智能写作网站昆山高端网站建设
  • 山东网站推广营销设计门户网站制作哪专业
  • 智能网站建设维护高端网站建设kgu
  • 7位数qq免费申请永久关键词优化公司济南兴田德润团队怎么样
  • 静态html网址网站导航源码手机微信一体网站建设
  • 深圳网站设计网站制作深圳市信用网
  • 上海定制化网站开发公司兼职做网站安全么
  • 网站安全维护公司成都市住建局
  • 昌吉州建设局网站pinterest网站怎么进
  • 网站内容完全改变被k做纺织的都用什么网站
  • 网站设计 无锡华润集团网站建设商
  • 怎么做网站的外链网站建设零金手指花总
  • 精品课程网站建设设计方案上海外贸博览会
  • 教育营销型的网站建设怎么使用服务器做网站
  • 互联网设计是做什么的十条网站建设的seo策略
  • 大连网站建设仟亿网站项目建设策划书流程