0101-ioc

2024-04-02 18:08
文章标签 ioc 0101

本文主要是介绍0101-ioc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

ioc是spring的基础,即控制反转。springboot基于注解使用ioc.

ioc

spring称所有被管理的对象为bean,

spring ioc主要通过描述的方式完成3类bean的管理工作:

基本功能说明
发布对象包扫描业务bean,javaConfig或者xml的方式配置第三方bean
获取对象BeanFactory或者ApplicationContext的子类获取bean
依赖注入对象通过关键字@Autowired,属性注入,构造函数注入,方法注入

spring ioc的核心接口是BeanFactory和ApplicationContext ;

BeanFactoryApplicationContext
获取bean的方法等同
判断是否是单例或者原型等同
类型匹配等同
获取bean的类型和别名等同
--MessageResource消息国际化功能
--EnvironmentCapable环境可配置
--ApplicationEventPublisher应用事件发布
--ResourcePatternResolver资源模式解析

来个例子,发布和获取bean;

TODO

通过@ComponentSacn发布Bean

@ComponentScan源码阅读

主要方法说明
basePackages扫描的包路径
basePackageClasses扫描的javaConfig类
includeFilters包含的bean的过滤器
excludeFilters排除的bean的过滤器
lazyInit是否延迟初始化

javaConfig方式或者xml方式定义第三方Bean发布

javaConfig方式主要是增加@Configuration 和 @Bean注解来发布;

>xml方式需要通过注解@ImportResource来引入

条件装配bean @Conditional(Condition实现类)

依赖注入

通过@Autowired来描述

通过@Primary和@Quelifier来消除歧义。

具体的依赖注入方式有 属性,构造函数,方法;

bean的生命周期

bean定义 -> bean初始化 ->bean生存期->bean销毁

bean定义:通过@ComponentScan扫描得到资源信息,从资源中解析出定义信息,然后把定义发布到spring容器中;

bean的初始化:创建bean,完成依赖注入,setBeanName,setBeanFactory,@PostConstruct标注的方法,postProcessorBeforeInitialzerion方法,setApplicationContext方法,afterPropertiesSet方法,postProcessorAfterInitialization方法;

bean生存期: 运行阶段直接使用

bean销毁: @PreDesctroy标注的方法,destory方法;

生命周期相关的扩展接口说明
BeanNameAware设置bean的名称
BeanFactoryAware获取BeanFactory
ApplicationContextAware获取ApplicationContext
InitializingBean初始化bean
DisposableBean销毁bean
BeanPostProcessor所有ben的公共增强

属性文件

引入依赖:

spring-boot-configuration-processor;然后使用@Value(“${xxx}”)来引用即可;

或者通过@ConfigurationProperties(“xxx”)直接组装到自定义类中;

还可以使用SpringEL来处理属性配置:

@Value("#{T(System).currentTimeMillis()}")

Bean作用域

作用域说明
singleton单例,全局唯一
prototype原型,每次创建
session每个http会话创建一个
application同单例
request每次请求创建一个

Profile

指明不同环境下启用的bean,springboot不同的profile对应不同的application-profile.yaml文件;

原创不易,转载请注明出处,欢迎多沟通交流

这篇关于0101-ioc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/870695

相关文章

Spring6详细学习笔记(IOC+AOP)

一、Spring系统架构介绍 1.1、定义 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。Spring官网 Spring是一款主流的Java EE 轻量级开源框架,目的是用于简化Java企业级引用的开发难度和开发周期。从简单性、可测试性和松耦合度的角度而言,任何Java应用都可以从Spring中受益。Spring框架提供自己提供功能外,还提供整合其他技术和框架

spring ioc容器的原理

1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协

SpringIOC源码分析(六)__IOC容器的初始化__BeanDefinition载入注册

一、前情提要 上一篇提到了IOC容器初始化的流程,及资源定位,本篇主要分析BeanDefinition的载入过程 二、BeanDefiniton载入解析 BeanDefinition是IOC容器对Bean的数据承载模型,IOC容器对Bean的管理和依赖注入的实现,是通过对BeanDefinition的各种操作来实现的,IOC容器通过一个HashMap来保持和维护这些BeanDefinit

SpringIOC源码分析(五)__IOC容器的初始化__资源加载

一、IOC容器初始化过程 IOC容器初始化是由如上篇所讲到的refresh(),方法来启动的,启动包括BeanDefinition的Resource定位,载入和注册这个主要过程。 过程一:resource定位,是由resourceLoader通过getResource(String location) 的接口来完成的。过程二:将用户定义的Bean表示为IOC容器的内部数据结构BeanDef

Spring-容器:IOC-基于XML管理Bean

目录 一、概述1.1、定义1.2、简介1.3、作用1.4依赖注入1.4.1定义1.4.2作用1.4.3实现方式1.5实现 二、基于XML管理Bean(了解)2.1、获取Bean的方式2.2、依赖注入2.2.1、根据setter注入2.2.2、根据构造器注入 2.3、特殊值处理2.3.1、字面量赋值2.3.2、null值2.3.3、xml实体2.3.4、CDATA节 2.4、为对象类型属性赋

【Spring基础1】- Spring 启示录-理解IoC控制反转

目录 1-1 通过代码引出Spring分析上述程序问题 1-2 OCP 开闭原则1-3 依赖倒置原则(DIP原则)1-4 控制反转IoC1-5 Spring框架 1-1 通过代码引出Spring 假设有 MVC 三层模式下,有 Dao、Service、Web层 Dao 实现了 UserDao、UserDaoImplForMySQLServic 实现了 UserServic

Spring(三):IoC容器装配Bean(xml配置方式和注解方式)

XML配置方式 一、三种实例化Bean的方式 1.使用类构造器实例化(默认无参数) <bean id=“personService" class="cn.itcast.bean.impl.PersonServiceImpl"/> 2.使用静态工厂方法实例化 <bean id="personService"          class="com.itcast.factory.PersonSe

Spring(二):IOC和DI的理解

一、IOC和DI的理解         在平时的java应用开发中,我们要实现某一个功能或者说是完成某个业务逻辑时至少需要两个或以上的对象来协作完成,在没有使用Spring的时候,每个对象在需要使用他的合作对象时,自己均要使用像new object() 这样的语法来将合作对象创建出来,这个合作对象是由自己主动创建出来的,创建合作对象的主动权在自己手上,自己需要哪个合作对象,就主动去创建,创建合作

Spring6学习笔记2:容器IoC

文章目录 3 容器:IoC3.1 IoC容器3.1.2 依赖注入3.1.3 IoC容器在Spring的实现 3.2 基于XML管理Bean3.2.1 搭建子模块spring6-ioc-xml3.2.2 实验一:获取bean①方式一:根据id获取②方式二:根据类型获取③方式三:根据id和类型④注意的地方⑤扩展知识:一个接口实现类获取过程 3.2.3 实验二:依赖注入之setter注入3.2.4

sping IoC设计模式好处与劣势

Spring IOC 好处和劣势                分类:            技术文档 2012-03-26 15:15 4225人阅读 评论(0) 收藏 举报 ioc spring xml 编程 jboss hibernate IoC是什么?Inversion of Control,即反转控制,或许说为依赖注入更为合适。IoC就是IoC,不是