Spring运行原理
1、spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间 的藕合度。
2、AOP的主要原理:动态代理 。Spring工作原理 Spring 已经用过一段时间了,感觉Spring是个很不错的框架。
3、spring mvc的工作原理是:提供了构建 Web 应用程序的全功能 MVC 模块。使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的Web框架。
4、\x0d\x0a AOP的主要原理:动态代理 。\x0d\x0aSpring工作原理\x0d\x0aSpring 已经用过一段时间了,感觉Spring是个很不错的框架。
5、简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。
spring如何创建bean?不说是通过反射吗???
这个过程从根本上是反,因此得名“控制反转(IoC),控制实例化 bean 本身或者它的位置依赖关系通过使用直接建设类,或者一个Service Locator模式等机制。
Spring 容器中有两种bean:普通bean和工厂bean。Spring直接使用前者,FactoryBean跟普通Bean不同,其返回的对象不是指定类的一个实例,而是该FactoryBean的getObject方法所返回的对象。
一般情况下,Spring 通过反射机制利用bean 的 class属性指定实现类来实例化bean。
这个方法的作用就是根据你返回的类全限定名(org.springframework.context.annotation.AutoProxyRegistrar)数组来创建 Bean 。实现了 ImportSelector 的类也是需要使用 @Import 导入。
Spring加载Bean流程解析
1、比如加载 A 的单例,和原型模式类似,单例模式也会调用匹配到要使用的构造函数,发现构造函数有参数 B,然后使用 BeanDefinitionValueResolver 来检索 B 的实例,根据上面的分析,继续调用 beanFactory.getBean 方法。
2、设置环境变量(Environment)用来匹配在bean配置文件可能出现的一些占位符。设置资源定位器用来定位bean的xml定义文件。设置xml实体处理器辅助xml的解析工作。
3、Spring管理bean:从web.xml里面配置的ContextLoaderListener开始。
4、在spring中bean的实例化有2个时机:下面从spring ioc容器初始化的时候,预实例化的bean为线索来追溯bean的实例化和依赖注入过程,这个过程涵盖了getBean方法。