spring中IOC容器创建对象,对象依赖关系处理
SpringIOC容器1) 创建对象SpringIOC容器,是spring核心内容。作用: 创建对象 & 处理对象的依赖关系 IOC容器创建对象:创建对象, 有几种方式:1) 调用无参数构造器2) 带参数构造器3) 工厂创建对象工厂类,静态方法创建对象工厂类,非静态方法创建对象
SpringIOC容器
1) 创建对象
SpringIOC容器,是spring核心内容。
作用: 创建对象 & 处理对象的依赖关系
IOC容器创建对象:
创建对象, 有几种方式:
1) 调用无参数构造器
2) 带参数构造器
3) 工厂创建对象
工厂类,静态方法创建对象
工厂类,非静态方法创建对象
1) 调用无参数构造器
先看一下包结构。
建一个User实体类其中定义好无参构造器和有参构造器。
在bean.xml中加载无参构造方法
2) 带参数构造器
在bean.xml中加载有参构造方法
或者自己将要传方值另外定义好(不把代码写死)
工厂类,静态方法创建对象
3) 工厂创建对象
工厂类,非静态方法创建对象静态方法创建对象
建立一个测试类来使用一下:
对象依赖关系
Spring中,如何给对象的属性赋值? 【DI, 依赖注入】
1) 通过构造函数
2) 通过set方法给属性注入值
3) p名称空间
4)自动装配(了解)
5) 注解
1) 通过构造函数
2) 通过set方法给属性注入值
3) p名称空间
4)自动装配(了解)
通过属性名称就行装配
全局的自动装配
通过属性类型就行装配
default-autowire="byType"
注意:当同类型对象存在两个时则会报错。
总结:
Spring提供的自动装配主要是为了简化配置; 但是不利于后期的维护。
(一般不推荐使用)
5) 注解
注解方式可以简化spring的IOC容器的配置!
使用注解步骤:
1)先引入context名称空间
xmlns:context="http://www.springframework.org/schema/context"
2)开启注解扫描
<context:component-scan base-package="cn.itcast.e_anno2"></context:component-scan>
3)使用注解
通过注解的方式,把对象加入ioc容器。
创建对象以及处理对象依赖关系,相关的注解:
@Component 指定把一个对象加入IOC容器
@Resource 属性注入
也可以将括号中的内容省略(就是直接通过类型查找)
示例:
或者我们可以按层结构进行注解
@Repository 作用同@Component; 在持久层使用
@Service 作用同@Component; 在业务逻辑层使用
@Controller 作用同@Component; 在控制层使用
示例:
注解也可以和bean创建对象一起使用
比如将持久层不加注解,然后在bean.xml中配置对象
<bean id="userDao" class="cn.itcast.property.UserDao" ></bean>
总结:
1) 使用注解,可以简化配置,且可以把对象加入IOC容器,及处理依赖关系(DI)
2) 注解可以和XML配置一起使用。
更多推荐
所有评论(0)