Spring4基础知识(一)

本文介绍了Spring框架的核心概念,包括IOC(控制反转)、DI(依赖注入),并详细解释了Spring容器的两种实现:BeanFactory和ApplicationContext。此外,还探讨了Spring支持的三种依赖注入方式:属性注入、构造器注入和工厂方法注入。

 

目录

IOC

DI

Spring容器

ApplicationContext的主要实现类

Spring支持的三种依赖注入(DI)方式

什么是字面值

 引用其他Bean

内部Bean

Spring的级联属性


 

 

IOC

 

Inversion of Control,控制反转。其思想是反转资源获取的方向,用来降低代码之间的耦合度。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式

 

 

DI

 

Dependency Injection :依赖注入是IOC最常见的方式。即组件以一些预先定义好的方式接受来自如容器的资源注入,相对于IOC,这种表达更直接

 

 

Spring容器

 

Spring提供了两种类型的IOC容器实现:

  • BeanFacotry:IOC容器的基本实现,是Spring框架的基础设施,面向Spring本身

  • ApplicationContext: 提供了更多的高级特性,是BeanFacotory的子接口。这种方法面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext 而非底层的BeanFactory。在初始化上下文时就实例化所有单独的Bean

 

 

ApplicationContext的主要实现类

 

ClassPathXmlApplicationContext:从类路径下加载配置文件

FileSystemXmlApplicationContext:从文件系统中加载配置文件

ConfigurableApplicationContext扩展于ApplicationContext,新增了两个主要方法refresh()和close(),具有了启动,刷新和关闭的能力

WebApplicationContext:是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作

 

 

Spring支持的三种依赖注入(DI)方式

 

  • 属性注入:通过setter方法注入Bean的属性值或依赖的对象。属性注入使用<property>元素使用name属性指定Bean的属性名称,value属性或<value>子节点指定属性值。属性注入是实际应用中最常用的注入方式

       

 

  • 构造器注入:通过构造方法注入Bean的属性值或依赖的对象,它保证了Bean实例在实例化之后就可以使用。构造器注入在<constructor-arg>元素里声明属性。<constructor-arg>中没有name属性。

       

 

  • 工厂方法注入:(很少使用,不推荐) 

 

 

什么是字面值

 

可用字符串表示的值,可以通过<value>元素标签或value属性进行注入。

基本数据类型及其封装类,String等类型都可以采取字面值注入的方式。

若字面值中包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来。

 

 

 引用其他Bean

 

在Bean的配置文件中,可以通过<ref> 元素或ref属性为Bean的属性或构造器参数指定对Bean的引用。以便起到Bean之间的相互合作的作用。

    

 

 

内部Bean

 

 当Bean实例仅仅给一个特定的属性使用时,可以将其声明为内部Bean。内部Bean声明直接包含在<Property><constructor-arg>元素里,不需要设置任何id或name属性。内部Bean不能使用在任何其他地方。

 

 

Spring的级联属性

 

级联属性是指两个Bean关联时,从一个Bean给另一个Bean赋值。 

 

 

评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值