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

小程序模板免费网站网站建设相关资料文件

小程序模板免费网站,网站建设相关资料文件,网站阵地建设,网络广告有哪些文章目录 在Spring中#xff0c;Bean的作用域有哪几个#xff1f;SpringMVC的执行流程你知道吗#xff1f;谈谈你对Spring IOC的理解#xff1f;DI又是什么#xff1f;谈谈你对Spring AOP的理解#xff1f;Spring Bean的生命周期你能说出多少#xff1f;Spring如何解决循… 文章目录 在Spring中Bean的作用域有哪几个SpringMVC的执行流程你知道吗谈谈你对Spring IOC的理解DI又是什么谈谈你对Spring AOP的理解Spring Bean的生命周期你能说出多少Spring如何解决循环依赖的问题什么是循环依赖案例引入产生循环依赖的三种情况循环依赖的解决 在Spring中Bean的作用域有哪几个 singleton单例prototype多例requestspring创建一个bean并将其放入到request域当中sessionspring创建一个bean并将其放入到session域当中global session全局作用域所有会话共享一个作用域 SpringMVC的执行流程你知道吗 DispatcherServlet执行请求的解析与转发将请求转发给HandlerMapperHandlerMapping返回资源的执行顺序HandlerExcutionChainDispatcherServlet再调用HandlerAdapter请求执行handlerHandlerAdapter到Handler请求资源Handler返回一个ModelAndViewHandler相当于我们自己写的controllerDispatcherServlet将ModelAndView发送给视图解析器ViewResolverViewResolver解析ModelAndView返回一个视图对象ViewDispatcherServlet对view渲染将数据显示在页面上 DispatcherServlet相当于转发器HandlerMapping请求URL查找handlerHandlerAdapter执行handlerHandler需要我们自己开发ViewResolver视图解析器进行视图解析 谈谈你对Spring IOC的理解 IOCInversion Of Control控制反转即将创建对象的权利移交给spring容器由spring容器来统一管理对象及其生命周期和对象之间的依赖关系。 控制创建对象的权利 反转将创建对象的权利交给spring容器 之前我们创建某个对象的时候主动权在我们自己手中所以我们可以使用new关键字去创建一个对象但是在这种情况下会造成对象和其他类耦合的情况。但是引入IOC之后创建对象的主动权就在spring容器手中了当我们需要某个对象的时候只需要向spring容器去要就可以了。可以看出IOC能起到解耦的作用。 spring IOC用到了工厂设计模式。 DI又是什么 通过上个问题我们知道IOC只是一种设计思想它是指将创建对象的权利交给spring容器而这种思想就是依靠DI来实现的。 DIDependency Injection即依赖注入DI是反射思想的体现即允许在程序运行时动态的生成对象。 谈谈你对Spring AOP的理解 AOPAspect oriented programming 即面向切面编程是面向对象的一种补充。AOP的含义就是将对多个对象产生影响的公共行为和逻辑抽取出来并封装成一个通用的模块这个模块就叫做切面所以AOP可以提高代码复用和解耦。 Spring AOP中的几个概念 切点被增强的目标方法通知对目标方法进行增强的方法切面通知和切点的结合织入切点和通知结合的过程切面类含有通知方法 具体可以看我写的这一篇文章你还不知道什么是Spring AOP Spring Bean的生命周期你能说出多少 总的来说Spring Bean的生命周期可以分为四个阶段 实例化Instantiation属性赋值Populate初始化Initialization销毁Destruction 接下来我们对这四个阶段扩展一下 我们再来详细解读一下这几个过程 实例化实例化一个Bean属性赋值为Bean设置相关属性和依赖Aware接口让Bean能拿到容器的一些资源 BeanPostProcessor如果想对Bean进行一些自定义的前置处理那么可以让Bean实现了BeanPostProcessor接口 InitializingBean如果Bean实现了InitializingBean接口执行afeterPropertiesSet()方法。 init-method如果Bean在Spring配置文件中配置了init-method属性则会自动调用其配置的初始化方法。 BeanPostProcessor后置处理如果这个Bean实现了BeanPostProcessor接口将会调用postProcessAfterInitialization(Object obj, String s)方法DisposableBean当Bean不再需要时会经过清理阶段如果Bean实现了DisposableBean这个接口会调用其实现的destroy()方法 destroy-method最后如果这个Bean的Spring配置中配置了destroy-method属性会自动调用其配置的销毁方法。 Spring如何解决循环依赖的问题 什么是循环依赖 类与类之间的关系形成了一个闭环比如下图中A依赖了BB又依赖于A 是不是有点儿像操作系统中的死锁问题 案例引入 public class ClassA {private ClassB classB;public ClassB getClassB() {return classB;}public void setClassB(ClassB classB) {this.classB classB;} } public class ClassB {private ClassA classA;public ClassA getClassA() {return classA;}public void setClassA(ClassA classA) {this.classA classA;} }?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdbean idclassA classioc.cd.ClassAproperty nameclassB refclassB/property/beanbean idclassB classioc.cd.ClassBproperty nameclassA refclassA/property/bean /beansTestpublic void test() throws Exception {// 创建IoC容器并进行初始化String resource spring/spring-ioc-circular-dependency.xml;ApplicationContext context new ClassPathXmlApplicationContext(resource);// 获取ClassA的实例此时会发生循环依赖ClassA classA (ClassA) context.getBean(ClassA.class);}产生循环依赖的三种情况 通过构造方法进行依赖注入通过setter方法进行依赖注入多例模式下通过setter方法进行依赖注入单例模式下 第三种已经被解决第一种情况下在new的时候会被堵塞创建A的时候依赖于B创建B又依赖于A导致new不出来第二种情况下每次调用getBean()时都会产生一个新的Bean这样就会产生N个Bean最终抛出内存溢出异常。 循环依赖的解决 在Spring中有三大缓存一级缓存二级缓存三级缓存。 一级缓存存储单例模式下创建的Bean已经创建完成的对外使用二级缓存存储单例模式下创建的Bean正在创建中的对内使用三级缓存通过ObjectFactory存储单例模式下的Bean正在创建中的对内使用三级缓存使用ObjectFacotory来存储的原因是如果对象实现了AOP注入到其他Bean的时候并不是最终的代理对象而是原始的。这时就需要通过三级缓存的ObjectFactory才能提前产生最终的需要代理的对象。 Spring主要依靠二级缓存和三级缓存来解决单例模式下setter方法进行依赖注入时产生循环依赖的问题。 解决单例模式下setter方法进行依赖注入时产生循环依赖的问题是Spring自动解决的通过构造方法进行依赖注入时所产生的循环依赖问题需要我们人为解决常见的解决方案就是Lazy注解Lazy注解的作用就是延迟加载。比如我们想创建对象A此时A依赖于B但当使用Lazy注解之后在创建A时就会基于动态代理去创建一个代理类B1也就是此时A依赖于B1B依赖于A。要注意的是在注入依赖时类A并没有完全的初始化完实际上注入的是一个代理对象只有当他首次被使用的时候才会被完全的初始化。 参考文章Spring如何解决循环依赖 整理面经不易觉得有帮助的小伙伴点个赞再走吧~感谢收看
http://www.hkea.cn/news/14282256/

相关文章:

  • 深圳 学习网站浙江建设厅继续教育网站
  • 怎么做网站维护网站开发与管理的专业描述
  • 百度不做网站外链是什么原因wordpress显ip
  • 如何在空白服务器上搭建网站手机个人简历模板下载
  • 营销网站 深圳品牌建设表态发言
  • 上海外贸网站建设公司做公司网站需要多长时间
  • 淘宝客 wordpress网站徐州网上阳光招生平台
  • 外贸网站建站hwordpress域名重复
  • 建设厅网站怎么查询安全员c考试成绩做网站用的小图标
  • 开发网站的申请怎么写网页前端设计用什么软件
  • 徐州网络优化招聘网网站seo内部优化
  • 深圳市建设行业主管部门官方网站北京外包公司 网站开发
  • 恩施建设银行网站wordpress销售和会员
  • 南通网站建设规划书php网站建设案例教程视频
  • 企业网站建设的目标免费发布产品信息的网站
  • 怎么知道网站是哪个公司做的建设五证在那个网站可以查
  • 民宿客栈网站制作网页设计个人主页图片
  • 软件工程毕业可以做网站吗河北网络推广公司
  • 企业网站能自己建设吗郑州大学现代远程教育 《网页设计与网站建设》个人主页
  • 电商运营培训课程网站变装chinacd wordpress
  • 深圳有做网站的吗无锡网站建设动态
  • 天津网站建设代理商专业的南昌网站建设
  • joomla 网站 html 空免费代理招商网
  • 如何做医疗网站的专题页网站申请域名流程
  • 网站开发属于购销合同浙江建设职业技术学院官网
  • 网站建设价格标准渠道网站建设seo优化培训
  • 单个页面的网站网络销售怎么做才能做好
  • 目前做美术的网站以及app分销系统
  • 网站备案个人使用网站建设影音先锋网址
  • 黑龙江省建设厅网站的电话wordpress无法搜索插件