Spring4基础知识(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Delicious_Life/article/details/88780301

 

目录

IOC

DI

Spring容器

ApplicationContext的主要实现类

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

什么是字面值

 引用其他Bean

内部Bean

Spring的级联属性


扫描二维码关注公众号,回复: 6016009 查看本文章

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赋值。 

 

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/88780301