SpringIOC容器

1) 创建对象

SpringIOC容器,是spring核心内容。

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

 

IOC容器创建对象:

创建对象, 有几种方式:

1) 调用无参数构造器

2) 带参数构造器

3) 工厂创建对象

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

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


1) 调用无参数构造器

先看一下包结构。

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



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


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

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


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

2) 带参数构造器


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

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


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

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



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

3) 工厂创建对象

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

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

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

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

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

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

 对象依赖关系

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

1) 通过构造函数

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

3) p名称空间

4)自动装配(了解)

5) 注解

 

1) 通过构造函数

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



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

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


3) p名称空间

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

4)自动装配(了解) 

通过属性名称就行装配

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

全局的自动装配

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

通过属性类型就行装配

default-autowire="byType"

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

总结:

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

(一般不推荐使用)


5) 注解

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

 

使用注解步骤:

1)先引入context名称空间

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

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

2)开启注解扫描

<context:component-scan base-package="cn.itcast.e_anno2"></context:component-scan>

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

3)使用注解

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

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

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

@Resource     属性注入


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

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


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


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

示例:

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


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

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

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

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

 示例:

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

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

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

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

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

<bean id="userDao" class="cn.itcast.property.UserDao" ></bean>


总结:

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

 



 



相关文章: