SpringIoC知识点梳理

Spring IoC(Spring Inversion of Control):控制反转,一种编程思想。我理解就是把管理对象的权力,由直接通过程序变为通过Spring容器,如此统一的来管理对象和对象间的关系
DI(Dependency Injection):依赖注入,Spring通过DI,实现了IoC

1.通过Spring来创建对象
  • 通过对象的构造方法
<bean class="" id="">
  • 通过静态工厂方法
<bean class="" factory-method="" id="">
  • 通过实例工厂方法
<bean factory-bean="" factory-method="" id="">
2.获取Spring创建的对象

通过Spring的容器工厂类来获取对象

  • 项目目录下加载:ClassPathXmlApplicationContext
  • 文件目录下加载:FileSystemXmlApplicationContext
3.Bean的作用域

以下均为< bean >的属性和值

  • scope=“singleton”:默认值,容器里只有一个实例(单例)
  • scope=“prototype”:容器里可以有多个实例
  • scope=“request”:每次HTTP请求都会创建一个新的Bean
  • scope=“session”:同一个HTTP Session共享一个Bean
  • scope=“application”:限定一个Bean的作用域为ServletContext的生命周期
4.Bean的生命周期
  • 实例化 -> 属性赋值 -> 初始化 -> 销毁
  • 相关的配置(以下均为< bean >的属性,属性值为该bean实例里对应的方法)
    init-method:在容器创建bean之后自动调用。
    destroy-method:在容器关闭时自动调用。只对单例的bean有效。
    lazy-init:在容器创建时并不创建bean,而是在获取bean时才创建,只对单例的bean有效。
5.依赖注入的方式
  • setter注入:通过bean的set方法
<bean...>
	<property name="age" value="xxx"/>
</bean>
  • 构造器注入:通过bean的构造方法
<bean...>
	<constructor-arg index="0" value="xxx"/><constructor-arg index="1" value="xxx"/>
</bean>
  • 自动装配:从容器中找到匹配的bean,设置给这个bean的属性。
<!--根据类型:即bean的class 类所在包名 -->
<bean...	autowire="byType"></bean>
<!--根据名称:即bean的id -->
<bean...	autowire="byName"></bean>
6.可被注入的类型
  • 基本类型
<property name="age" value="22"/>
  • 其他bean
<property name="age" ref="xxx"/>
  • 集合:比如List、Set、Map
<property name="xxx">
		<list>
			<value> </value>
			<value> </value>
			<value> </value>
		</list>
</property>
<property name="xxx">
		<map>
			<entry key="" value=""/>
			<entry key="" value=""/>
		</map>
</property>
  • 使用spring表达式来访问其它bean的属性#{}
    spring表达式:#{}
<property name="ename" value="#{msg.name}"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值