spring IOC
Spring IOC
2023-09-27 14:20:25 时间
1 ioc和di
ioc,inversion of control
控制转化。控制主要指的是对对象的创建的控制,本来程序按需创建对象,但是现在控制权交给第三方,即spring,程序不需要自己创建对象了,它需要对象的时候只要从spring的Bean容器中get即可,即控制权由程序转化到了第三方框架spring。
di,dependency injection
依赖注入。假如A依赖于对象B,如果不使用spring的话,我们需要首先创建B对象,然后再创建A对象,但是,依赖注入是说,从java Bean容器中获取A对象的时候,只要在xml中指定了A和B的依赖关系,A所依赖的B对象直接由spring注入给A使用。
2 spring IOC容器中的beans是何时创建的
如果scope是单例的话,默认情况下是ioc容器启动的时候就会实例化,但是如果设置了lazy-init="true"的话,那么要等到getBean()的时候才实例化该bean。
如果scope是prototype的话,是要等到getBean()时才会实例化该bean,原因很简单,都没有用就实例化的话,浪费内存。
创建ClassPathXmlApplicationContext对象的时候,只是解析了spring xml配置文件,然后将里面用bean标签定义的bean元素创建BeanDefinion对象,放入DefaultListableBeanFactory的ConcurrentHashMap中。
prototype的bean的实例化是在getBean()的时候。
可见,除了对象的实例化不同以外,spring对主逻辑几乎没有影响,这样做带来的巨大好处就是对对象解耦合。
相关文章
- Spring 注解方式 实现 IOC 和 DI
- Spring IOC - 控制反转(依赖注入) - 入门案例 - 获取对象的方式 - 别名标签
- 8 -- 深入使用Spring -- 2...5 Spring 3.0 新增的注解
- spring常用的注入方式有哪些?
- Spring IOC 原理深层解析
- spring boot
- Spring学习-2-IOC和DI
- Spring Framework 简介
- 《SSM篇》01.Spring_IOC/DI相关配置与使用
- spring源码分析(一)IOC管理Bean
- 《Spring实战(第4版)》——1.2 容纳你的Bean
- 基于Java(Spring Boot)+MySQL实现商品销售平台【100010126】
- .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载
- Spring IOC 相关的面试题
- Spring IOC基础
- spring计划任务,springMvc计划任务,Spring@Scheduled,spring定时任务
- Spring IOC
- springboot初体验-不知道怎么创建spring-boot项目?
- Spring Boot 2 实战: 自定义 Servlet Filter 的两种方式
- Spring Cloud服务注册-Eureka介绍和部署
- Java-Spring集合注入
- Spring IOC 容器初始化过程
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现--转载