spring注入属性(DI)
两种方式
一、配置文件配置对象
<bean id="被依赖对象名称" class="URL地址"></bean> /*创建对象,利用spring来对对象进行管理*/
二、配置文件注入属性
1、使用set方法注入 (特别注意:类中的对象属性需要写set方法:
private User user;public void setUser(User user){this.user = user;})
<bean id="对象名称" class="URL地址">
<property name="类中的属性名称" value="属性值"></property>
</bean>
2、使用有参构造注入
<bean id="对象名称" class="URL地址">
<constructor-arg name="类中的属性名称" value="属性值"></constructor-arg>
</bean>
3、使用接口注入(不是重点)
三、配置文件注入对象(特别注意:类中的对象属性需要写set方法:
private User user;public void setUser(User user){this.user = user;})
<bean id="依赖对象名称" class="URL地址">
<property name="..." ref="被依赖对象名称"></property> /*注入对象类型的属性,实现类A对类B的依赖*/
</bean>
二、注解创建对象
@Component(value="对象名称") 以及其三种衍生注解{@Controller(web层)、@Service(业务层)、@Repository(持久层)}
四种注解方式目前来看作用一致,后续版本会增强。
三、注解注入属性(步骤)
1、分别利用@Component创建依赖与被依赖类的对象:@Component(value="user1")、@Component(value="user2");
2、法一:在依赖类中使用注解@Autowired完成被依赖对象的注入:@Aurowired
private User2 user2;(注意,不需要生成user2的set方法)
法二:在依赖类中使用注解@Resource(name="user2")完成被依赖对象的注入:@Resource(name="user2")
private User2 user2;(注意:name中的对象名称要与对象创建时的value="user2"一致)
两种方式
一、配置文件配置对象
<bean id="被依赖对象名称" class="URL地址"></bean> /*创建对象,利用spring来对对象进行管理*/
二、配置文件注入属性
1、使用set方法注入 (特别注意:类中的对象属性需要写set方法:
private User user;public void setUser(User user){this.user = user;})
<bean id="对象名称" class="URL地址">
<property name="类中的属性名称" value="属性值"></property>
</bean>
2、使用有参构造注入
<bean id="对象名称" class="URL地址">
<constructor-arg name="类中的属性名称" value="属性值"></constructor-arg>
</bean>
3、使用接口注入(不是重点)
三、配置文件注入对象(特别注意:类中的对象属性需要写set方法:
private User user;public void setUser(User user){this.user = user;})
<bean id="依赖对象名称" class="URL地址">
<property name="..." ref="被依赖对象名称"></property> /*注入对象类型的属性,实现类A对类B的依赖*/
</bean>
二、注解创建对象
@Component(value="对象名称") 以及其三种衍生注解{@Controller(web层)、@Service(业务层)、@Repository(持久层)}
四种注解方式目前来看作用一致,后续版本会增强。
三、注解注入属性(步骤)
1、分别利用@Component创建依赖与被依赖类的对象:@Component(value="user1")、@Component(value="user2");
2、法一:在依赖类中使用注解@Autowired完成被依赖对象的注入:@Aurowired
private User2 user2;(注意,不需要生成user2的set方法)
法二:在依赖类中使用注解@Resource(name="user2")完成被依赖对象的注入:@Resource(name="user2")
private User2 user2;(注意:name中的对象名称要与对象创建时的value="user2"一致)