本文主要是介绍本周笔试题节选,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
谈谈对ioc,aop的理解
Ioc:控制反转
定义:Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的 对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁, 控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:正转与反转:正转:传统的应用程序由我们在对象中主动去创建对象依赖反转:程序中需要的对象由ioc容器创建,程序直接调用即可。DI(依赖注入):被注入对象依赖IoC容器配置依赖对象注入对象方式:注解,xml配置(传参:构造方法,set)ioc容器控制对象,应用程序依赖于ioc容器,ioc容器注入某个对象,注入某个对象所需要的外部资源(包括对象、资源、常量数据)
Aop:面向切面编程
实现:比如日志,事务,权限AOP的基本概念:(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式(5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类
底层:
spring aop默认实现的是jdk的动态代理,当代理的是类的时候,自动切换cglib代理;jdk:基于接口 cglib:基于子类
springMVC工作流程
第一步:用户发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找
第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)
第五步:处理器适配器去执行Handler
第六步:Handler执行完给处理器适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析
第九步:视图解析器像前端控制器返回View
第十步:前端控制器对视图进行渲染
第十一步:前端控制器向用户响应结果
看到这些步骤我相信大家很感觉非常的乱,这是正常的,但是这里主要是要大家理解springMVC中的几个组件:
前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
处理器映射器(HandlerMapping):根据URL去查找处理器
处理器(Handler):(需要程序员去写代码处理逻辑的)
处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面
这篇关于本周笔试题节选的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!