SpringIOC容器创建对象及依赖注入的几种方式
2018-01-22 16:41
1291 查看
Spring IOC容器
SpringIOC容器:是spring的核心内容
作用:创建对象,处理对象的依赖关系
IOC容器创建对象
几种方式:
1、调用无参构造
<bean id="user" class="edu.cloud.spring.entity.User"></bean>
2、调用带参构造
<bean id="user2" class="edu.cloud.spring.entity.User">
<constructor-arg value="tom" index="1"></constructor-arg>
<constructor-arg value="101" index="0"></constructor-arg>
</bean>
3、工厂创建对象
工厂类:非静态方法创建对象
<!-- 工厂类的实例 -->
<bean id="UserFactory" class="edu.cloud.spring.entity.UserFactory"></bean>
<!-- 使用实例方法创建对象 -->
<bean id="user4" factory-bean="UserFactory" factory-method="getInstance"></bean>
静态方法创建对象
<!-- (静态)方法创建对象 -->
<!-- class:指定工厂类类型 -->
<bean id="user5" class="edu.cloud.spring.entity.UserFactory" factory-method="getStaticInstance"></bean>
对象依赖关系
DI,依赖注入
1、通过构造
<bean id="user2" class="edu.cloud.spring.entity.User">
<constructor-arg value="tom" index="1"></constructor-arg>
<constructor-arg value="101" index="0"></constructor-arg>
</bean>
2、通过set方法对属性注入【常用】
<bean id="user4" class="edu.cloud.spring.entity.User">
<property name="id" value="110"></property>
<property name="name" value="hhh"></property>
</bean>
<!-- 不用value了,用rel把这个对象引用进来 -->
<!-- 三层架构 依赖注入 -->
<!-- Action -->
<bean id="userAction" class="edu.cloud.second.UserAction">
<!-- property中的name指的是命名setter方法中的attribute部分:eg. setUserService() name为:userService -->
<property name="userService" ref="userService"></property>
</bean>
<!-- UserService -->
<bean id="userService" class="edu.cloud.second.UserService">
<!-- 不用value了,用rel把这个对象引用进来 -->
<property name="userDao" ref="userDao"></property>
</bean>
<!-- UserDao -->
<bean id="userDao" class="edu.cloud.second.UserDao"></bean>
<!-- 内部Bean -->
<bean id="userAction2" class="edu.cloud.second.UserAction">
<property name="userService">
<bean class="edu.cloud.second.UserService">
<property name="userDao">
<bean class="edu.cloud.second.UserDao"></bean>
</property>
</bean>
</property>
</bean>
3、P名称空间,属性注入优化
xml头文件包含:xmlns:p="http://www.springframework.org/schema/p"
<!-- p:属性注入 -->
<bean id="user" class="edu.cloud.second.User" p:id="999" p:name="Jack"></bean>
<!-- p:set方法注入 ref 引用-->
<bean id="userDao" class="edu.cloud.second.UserDao"></bean>
<bean id="userService" class="edu.cloud.second.UserService" p:userDao-ref="userDao"></bean>
<bean id="userAction2" class="edu.cloud.second.UserAction" p:userService-ref="userService"></bean>
SpringIOC容器:是spring的核心内容
作用:创建对象,处理对象的依赖关系
IOC容器创建对象
几种方式:
1、调用无参构造
<bean id="user" class="edu.cloud.spring.entity.User"></bean>
2、调用带参构造
<bean id="user2" class="edu.cloud.spring.entity.User">
<constructor-arg value="tom" index="1"></constructor-arg>
<constructor-arg value="101" index="0"></constructor-arg>
</bean>
3、工厂创建对象
工厂类:非静态方法创建对象
<!-- 工厂类的实例 -->
<bean id="UserFactory" class="edu.cloud.spring.entity.UserFactory"></bean>
<!-- 使用实例方法创建对象 -->
<bean id="user4" factory-bean="UserFactory" factory-method="getInstance"></bean>
静态方法创建对象
<!-- (静态)方法创建对象 -->
<!-- class:指定工厂类类型 -->
<bean id="user5" class="edu.cloud.spring.entity.UserFactory" factory-method="getStaticInstance"></bean>
对象依赖关系
DI,依赖注入
1、通过构造
<bean id="user2" class="edu.cloud.spring.entity.User">
<constructor-arg value="tom" index="1"></constructor-arg>
<constructor-arg value="101" index="0"></constructor-arg>
</bean>
2、通过set方法对属性注入【常用】
<bean id="user4" class="edu.cloud.spring.entity.User">
<property name="id" value="110"></property>
<property name="name" value="hhh"></property>
</bean>
<!-- 不用value了,用rel把这个对象引用进来 -->
<!-- 三层架构 依赖注入 -->
<!-- Action -->
<bean id="userAction" class="edu.cloud.second.UserAction">
<!-- property中的name指的是命名setter方法中的attribute部分:eg. setUserService() name为:userService -->
<property name="userService" ref="userService"></property>
</bean>
<!-- UserService -->
<bean id="userService" class="edu.cloud.second.UserService">
<!-- 不用value了,用rel把这个对象引用进来 -->
<property name="userDao" ref="userDao"></property>
</bean>
<!-- UserDao -->
<bean id="userDao" class="edu.cloud.second.UserDao"></bean>
<!-- 内部Bean -->
<bean id="userAction2" class="edu.cloud.second.UserAction">
<property name="userService">
<bean class="edu.cloud.second.UserService">
<property name="userDao">
<bean class="edu.cloud.second.UserDao"></bean>
</property>
</bean>
</property>
</bean>
3、P名称空间,属性注入优化
xml头文件包含:xmlns:p="http://www.springframework.org/schema/p"
<!-- p:属性注入 -->
<bean id="user" class="edu.cloud.second.User" p:id="999" p:name="Jack"></bean>
<!-- p:set方法注入 ref 引用-->
<bean id="userDao" class="edu.cloud.second.UserDao"></bean>
<bean id="userService" class="edu.cloud.second.UserService" p:userDao-ref="userDao"></bean>
<bean id="userAction2" class="edu.cloud.second.UserAction" p:userService-ref="userService"></bean>
相关文章推荐
- 第36天(就业班) spring引入、专业术语、spring六大模块、bean创建对象的细节、IOC容器、对象依赖关系、自动装配、注解方式
- 【SSH快速进阶】——Spring IOC容器注入的几种方式
- Spring 创建 IOC 容器时加载配置文件的几种方式
- spring 之脱离容器管理创建的对象进行依赖注入
- 【Spring】【IOC】【Spring容器注入Bean对象的四种方式】【Spring中注入bean对象的注解】
- spring详解:spring IOC依赖注入的几种方式
- Spring Ioc-依赖注入的几种方式
- Spring Ioc 之二 -依赖注入的几种方式
- 深入研究Spring-IoC :容器创建的几种方式
- 79——SpringIOC容器创建对象的方式?(2条)
- Spring Ioc-依赖注入的几种方式
- SSH框架之Spring的IOC容器的创建对象、对象依赖关系(1)
- Spring IOC容器创建对象的方式
- spring IOC 依赖注入的几种方式
- spring ioc容器注入的集中方式,以及属性注入的集中依赖,继承,使用SPEL表达式,ioc容器的生命周期,bean的几种工厂方法配置方式,bean的自动装配
- Spring Ioc-依赖注入的几种方式
- 解释spring的ioc? 几种注入依赖的方式?spring的优点?
- spring中IOC容器创建对象,对象依赖关系处理
- Spring Ioc-依赖注入的几种方式
- spring IOC容器创建对象的三种方式