SpringIOC配置详解

本文详细介绍了Spring IOC的概念、特点、优点,包括IOC容器的体系结构,如BeanFactory和ApplicationContext,以及getBean方法的使用。还讲解了bean的注入方式,如属性注入、构造器注入、工厂注入和引用其他bean的配置。此外,文章还涵盖了内部bean配置、字面量配置、集合配置、p命名空间以及自动装配的规则。
摘要由CSDN通过智能技术生成

Spring IOC 

本文引用自:https://elfgirl.top/archives/638

  1. spring概述及其特点

(1)      概述

1           spring是一个开源框架

2           spring是为了简化企业级开发而生,可以简单的实现只有EJB才能实现的功能

3           spring是一个IOC(DI)和AOP容器框架

(2)      两大特点

1           IOC(DI) :控制反转(依赖注入)

1)         指把原先我们代码里面需要实现对象的创建、对象的依赖关系反转(交给)给容器帮我们实现。那么我们必然会创建一个容器,同时需要一种描述来让容器知道我们需要创建那些对象以及对象与对象之间的关系。一般情况这种描述是以一种可配置文件的方式存在。

2)         更加通俗的讲就是以前都是我们自己创建对象维护对象之间的关系,现在我们让IOC容器帮我们创建对象以及维护对象之间的关系,而我们只声明的时候指定其方式就可以。当我们使用的时候,只需要指定变量接受即可(指定方式)。IOC容器会自动将创建好的对象给我们。

2           AOP : 面向切面编程

1)         面向切面编程是一种思想,是一种横切的技术。将我们系统中各个模块中相同的横切面(日志、权限)等集中到一起编程,可以在不影响功能的前提下完成任务。

2)          

(3)      优点

1)         轻量级、非入侵式框架。不需要应用程序强制实现特定接口或者继承某个类。

依赖注入

2)         面向切面编程

3)         容器:spring管理我们项目中对象的声明周期

4)         框架,可以通过简单的配置实现复杂的应用

5)         一站式:可以与第三方框架快速集成。

 

  1. IOC容器体系介绍

(1)      体系图

(2)      常用的类或者接口

1           BeanFactory : Spring IOC容器的根接口,提供了获取bean的基本方法等。一般提供给Spring本身自己使用

2           ApplicationContext : BeanFactory的子接口,扩展了一些功能,提供给Spring使用者使用

3           ConfigurableApplicationContext : 扩展ApplicationContext使得IOC容器具有刷新,关闭的功能

4           ClassPathXmlApplication : 具体实现子类,从类路径下加载IOC配置文件,并创建容器

5           FileSystemXmlApplicationContext :具体实现子类,从系统路径下加载IOC配置文件,并创建容器

6           WebApplicationContext :Web项目使用的IOC容器

(3)      getBean()方法介绍

1           作用: 从IOC容器内获取bean

2           重载方法:

1)         Object getBean(String name) throws BeansException :根据配置bean的id获取bean

2)         <T> T getBean(Class<T> requiredType) throws BeansException : 根据传入的Class类型获取bean。注意:如果容器中有多个兼容类型的bean会抛出异常

3)         <T> T getBean(String name,Class<T> requiredType) Throws BeansException 根据配置bean的id,并且指定类型,获取bean。(不用强制转换)

4)         Object getBean(String name,Object ... args) : 根据指定id的名称和构造器获取bean,该bean可以不配置属性赋值和构造赋值,指定使用args给对象赋值,并返回。

  1. bean的注入方式

(1)      属性注入

1           property标签的name属性和value属性

2           property的子标签<vaue>或者 <ref bean=”beanId ” />来指定

3           案例:

(2)      构造器注入(<constructor-arg> 标签配置)

1           使用index=”下标” 指定构造函数参数位置。缺点:函数重载问题类型兼容不能解决

2           使用type=”全类名” 指定构造函数类型 。缺点: 不能指定位置,找不到指定的构造器

3           ①②混合使用。 解决问题

(3)      工厂注入: 略

  1. 引用其他bean配置(引用其他bean的id)

(1)      ref属性:

 

(2)      ref标签

  1. 内部bean配置

(1)      内部配置bean标签

  1. 字面量配置

(1)      八大基本数据类型和String类型,可以直接写到value属性内

(2)      String类型含有特殊字符配置方式

1           实体配置

2           <![CDATA[ 值 ]]>方式

  1. 集合配置

(1)      方式一:直接使用<set> <list><map> <array>的节点在内部配置,只能在内部使用

(2)      方式二:可以使用util工具配置公共的集合,都可以引用(一般使用id引用)

map集合配置:通过map entry 标签配置

  1. p命名空间

(1)      概述

1           在spring2.5以后推出了p命名空间,可以在bean上直接使用p命名空间配置简化了配置

(2)      使用

  1. 自动装配

(1)      前提:只能装配非字面量的属性

(2)      装配方式

1           通过byName装配

1)         装配规则:通过在IOC容器内匹配bean的id和类中属性名相同的bean就行自动装配

2           通过byType装配

1)         装配规则:通过在IOC容器内配置和类中属性类型相同的bean,进行自动装配。注意:不关心id是否与属性名相同

 

2)         问题:如果IOC容器内有两个或者两个以上兼容类型的bean,则使用byType装配,会报错!

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值