spring中IOC容器创建对象,对象依赖关系处理

SpringIOC容器

1) 创建对象

SpringIOC容器,是spring核心内容。

作用: 创建对象 & 处理对象的依赖关系

 

IOC容器创建对象:

创建对象, 有几种方式:

1) 调用无参数构造器

2) 带参数构造器

3) 工厂创建对象

工厂类,静态方法创建对象

工厂类,非静态方法创建对象


1) 调用无参数构造器

先看一下包结构。

spring中IOC容器创建对象,对象依赖关系处理_第1张图片



建一个User实体类其中定义好无参构造器和有参构造器。


spring中IOC容器创建对象,对象依赖关系处理_第2张图片

在bean.xml中加载无参构造方法



2) 带参数构造器


在bean.xml中加载有参构造方法



或者自己将要传方值另外定义好(不把代码写死)

spring中IOC容器创建对象,对象依赖关系处理_第3张图片



工厂类,静态方法创建对象

3) 工厂创建对象

spring中IOC容器创建对象,对象依赖关系处理_第4张图片

工厂类,非静态方法创建对象静态方法创建对象


建立一个测试类来使用一下:

spring中IOC容器创建对象,对象依赖关系处理_第5张图片


 对象依赖关系

Spring中,如何给对象的属性赋值?  DI, 依赖注入】

1) 通过构造函数

2) 通过set方法给属性注入值

3) p名称空间

4)自动装配(了解)

5) 注解

 

1) 通过构造函数




2) 通过set方法给属性注入值

spring中IOC容器创建对象,对象依赖关系处理_第6张图片


3) p名称空间


4)自动装配(了解) 

通过属性名称就行装配


全局的自动装配

spring中IOC容器创建对象,对象依赖关系处理_第7张图片

通过属性类型就行装配

default-autowire="byType"

注意:当同类型对象存在两个时则会报错。

总结:

Spring提供的自动装配主要是为了简化配置; 但是不利于后期的维护。

(一般不推荐使用)


5) 注解

注解方式可以简化spring的IOC容器的配置!

 

使用注解步骤:

1)先引入context名称空间

xmlns:context="http://www.springframework.org/schema/context"

spring中IOC容器创建对象,对象依赖关系处理_第8张图片

2)开启注解扫描


3)使用注解

通过注解的方式,把对象加入ioc容器。

创建对象以及处理对象依赖关系,相关的注解:

@Component   指定把一个对象加入IOC容器

@Resource     属性注入


spring中IOC容器创建对象,对象依赖关系处理_第9张图片

spring中IOC容器创建对象,对象依赖关系处理_第10张图片   


spring中IOC容器创建对象,对象依赖关系处理_第11张图片


也可以将括号中的内容省略(就是直接通过类型查找)

示例:

spring中IOC容器创建对象,对象依赖关系处理_第12张图片


 或者我们可以按层结构进行注解

@Repository   作用同@Component; 在持久层使用

@Service      作用同@Component; 在业务逻辑层使用

@Controller    作用同@Component; 在控制层使用

 示例:

spring中IOC容器创建对象,对象依赖关系处理_第13张图片


spring中IOC容器创建对象,对象依赖关系处理_第14张图片

注解也可以和bean创建对象一起使用

比如将持久层不加注解,然后在bean.xml中配置对象



总结:

1) 使用注解,可以简化配置,且可以把对象加入IOC容器,及处理依赖关系(DI)
2) 注解可以和XML配置一起使用。

 



 



你可能感兴趣的:(spring)