spring

一、spring介绍
框架是具有约束性的支撑某些功能实现的半成品的项目

struts1,struts2,hibernate,spring,springMVC,mybatis
ssh:struts2+spring+hibernate

ssm:springMVC+spring+mybatis

spring:设计型框架
springMVC:MVC框架
mybatis:持久层框架

spring的两大核心:IOC(DI)和AOP

IOC:反转控制,反转的是对象的控制权,没有spring时,由程序员自己根据业务的实现过程创建所需对象
在使用spring之后,在实现功能的过程中,所需对象就可以由程序本身的IOC容器所提供的

DI:依赖注入,根据依赖关系,通过预先定义好的方式(set方法,构造器)为所需对象进行赋值的过程

IOC是一种思想,DI是IOC的具体实现

三种获取IOC容器对象的方法:
1、Object obj = ac.getBean(String beanId);
2、Person person = ac.getBean(Person.class);
注意:此时在IOC容器中有且只能有一个此类型的bean
3、Person person = ac.getBean(“person”, Person.class);
此时通过两个条件就可以更精确的匹配到所需要的的对象

IOC容器的两种表现方式:
BeanFactory(只有最基本的功能,不建议使用)
ApplicationContext(是BeanFactory的子接口,其中有更多扩展的功能,建议使用)
ConfigurableApplicationContext(是ApplicationContext子接口,其中有刷新和关闭容器的方法)
ClassPathXmlApplicationContext(实现类,从类路径下匹配xml获取IOC容器)
FileSystemXmlApplicationContext(实现类,从文件系统下匹配xml获取IOC容器)

依赖注入的两种方式:
1、set注入,通过set方法为属性赋值

name:要赋值的属性名,和成员变量没有关系,只看set方法
value:为属性赋值
ref:引用当前IOC容器中的某一个bean的id
2、构造器注入,通过构造器为属性赋值
:通过构造器为某个参数赋值
value:为属性赋值
ref:引用当前IOC容器中的某一个bean的id
index:设置当前标签赋值的参数索引
type:设置当前标签赋值的参数类型
name:设置当前标签赋值的参数名称
注意:
构造器注入,必须能够匹配到相应的构造器
若不设置index,name,type时,按照标签的顺序为匹配到的构造器中的参数赋值,可以通过index属性设置顺序
若一个bean在通过构造器赋值时,匹配到了多个构造器,可以通过type和name指定赋值的参数

依赖注入时,可以使用的值:
1、字面量:字符串,基本数据类型和其所对应的包装类,都可以通过value属性和value子节点进行赋值
2、null
:赋值的是字符串"null",而不是空对象null
:赋值的是字符串""


:赋值null空对象
3、非字面量:使用ref引用IOC容器中某一个bean的id
注意:
1、id所对应bean必须存在
2、id所对应的bean必须能够为属性赋值,即必须为该类型的兼容性类型
4、内部bean
在当前的或中直接定义一个内部的bean对象
注意:此bean对象只能在当前的bean内部使用,不能在外部的bean中通过ref进行引用
5、为属性的级联属性赋值(了解)
注意:必须进行实例化或通过ref引用相应的bean对象,才可以使用级联属性赋值
而赋值之后,会对IOC中的原bean对象中的属性造成影响,即重新赋值

为数组类型的属性赋值:
在或的内部使用子节点进行赋值

为集合属性赋值
1、在或的内部
使用为List集合属性赋值
使用为set集合属性赋值
使用为map集合属性赋值
中,每一个代表一个键值对,在其中通过设置键,通过或设置值
2、使用集合类型的bean,需要引入util的命名空间
通过util:list创建一个list类型的bean
通过util:map创建一个map类型的bean
总结:以上在为集合属性赋值时,若为字面量,则使用标签赋值,若为非字面量,则使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值