-
目录
-
spring框架
- 就是spring Frameword,用来提高开发效率以及系统的可维护性
- 核心分为:IOC、DI、AOP
- IOC:控制反转,就是将原本在程序中手动创建对象的控制权,交给spring来管理
- IOC容器实际上就是Map,其中存放这各种各样的对象。
- IOC容器:ClassPathXmlApplicationContext、 FileSystemXmlApplicationContext、AnnotationConfigApplicationContext、 BeanFactory
- ApplicationContext和BeanFactory的区别?
- ApplicationContext和BeanFactory都是Spring容器。
区别是 BeanFactory 是底层接口,ApplicationContext是派生接口,功能更强大。BeanFactory是懒加载,使用的时候才会创建Bean。内存不足时,可以使用BeanFactory。ApplicationContext默认在容器初始化的时候就加载所有的bean,好处是使用的时候 拿来即用,无需等待,缺点是起始阶段比较耗费内存。
- ApplicationContext和BeanFactory都是Spring容器。
- BeanFactory和FactoryBean的区别?
- BeanFactory是spring容器,
- FactoryBean是一个特殊的bean,用于创建bean,创建出来的bean会放在容器中
- bean标签中的属性?
- <bean id ="" class="" name="" scope="" init-method="" desctory-method="" lazy-init="" autowire="">
- Spring中的单例Bean是线程安全的吗?
- 不安全。
- 但是spring中的bean是无状态的,是不储存数据的,所以某种程度上来说,其线程也算是安全的
- 怎么解决线程安全问题?
- 把bean的作用域改成非单例
- 把共享变量放到ThreadLocal中,ThreadLocal是线程私有变量,线程间隔离,也可以解决线程安全问题
- Spring容器中bean的生命周期?
- BeanDefinition(定义bean)--> 实例化 --> 依赖注入--> 初始化--> 放容器中使用--> 销毁
- 先通过配置文件或者注解拿到所有的BeanDefinition,并放到BeanDefinitionMap中
- 从BeanDefinition拿到bean,定义并实例化
- 依赖注入:给容器中的bean属性赋值
- 初始化:给属性赋值
- 初始化完成后,bean真正创建完成,就可以把bean放到Spring容器中,ConcurrentHashMap,我们使用的时候就可以通过getBean来获取bean
- 容器销毁的时候,bean也会跟着销毁
- BeanDefinition(定义bean)--> 实例化 --> 依赖注入--> 初始化--> 放容器中使用--> 销毁
- ApplicationContext和BeanFactory的区别?
- IOC容器:ClassPathXmlApplicationContext、 FileSystemXmlApplicationContext、AnnotationConfigApplicationContext、 BeanFactory
- IOC容器实际上就是Map,其中存放这各种各样的对象。
java-基础框架框架
最新推荐文章于 2024-05-01 05:43:39 发布