spring学习笔记1

 

控制反转(IOC)和依赖注入(DI)实际上就是两个相辅相成的东西,控制反转说的是控制权由组件转移到了容器,依赖注入就是说组件以一些预先定义的方式接受来自容器的资源。

IOC:

1.   (前生)分离接口与实现:

需求:生成HTML或PDF格式的不同类型的报表

2.   (前生)工厂设置模式

3.   采用反转控制

 

配置Beans

Class: bean的全类名,通过反射的方式在IOC容器中创建bean,所以要求bean中必须有无参构造器,而java默认存在无参构造器;而当我们需要增加有参构造器时,也需要把无参构造器写出。

Id: 标识容器的bean.id是唯一的,不可重复。

 

两种IOC容器的实现:

BeanFactory:IOC容器的基本实现。

ApplicationContext: 提供更多的高级特性,是BeanFactory的一个子接口。

BeanFactory是spring框架的基础设施,面向spring本身;

而ApplicationContext面向使用spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext而不是BeanFactory。

 

ApplicationContext主要实现类:

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

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

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

ApplicationContext 在初始化上下文时就实例了所有单例的Bean

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

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

基本数据类型及其封装类、string等类型都可以采取字面值注入的形式

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

 

无论使用何种方式,配置文件时都是相同的。(也就是xml配置方式都是一样的)

可以通过spring内置的xml标签(例如<list>,<set>,<map>)来配置集合属性。

配置java.util.List类型的属性,需要通过<list>标签,在标签里包含一些元素,这些标签可以通过<value>指定简单的常量值,通过<ref>指定对其他bean的引用,通过<bean>指定内置Bean定义,通过<null /> 指定空元素,甚至可以内嵌其他集合。

 

数组的定义和List一样,都使用<list>

配置<java.util.Set>需要使用<set>标签,方法和<list>一样。

 

Java.util.Map通过<map>标签定义,<map>标签里可以使用多个<entry>作为子标签,每个条目包含一个键和一个值。

必须在<key>标签中定义键,

因为键和值的类型没有限制,所以可以自由的为它们指定<value> 、<ref> 、<bean>

、<null>元素

可以将Map的键和值作为<entry>的属性定义:简单常量使用key和value来定义,bean使用key-ref和value-ref属性进行定义

使用<props>定义java.utilProperties,该标签使用多个<prop>作为子标签,每个都需要定义<key>属性。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值