您的位置:首页 > 编程语言 > Java开发

Spring使用教程(三)注解2

2015-06-11 22:49 671 查看
Bean于Bean之间存在关联关系情况下使用注解

•@Autowired 注解自动装配具有兼容类型的单个 Bean属性
构造器, 普通字段(即使是非 public), 一切具有参数的方法都可以应用@Authwired 注解
默认情况下, 所有使用 @Authwired 注解的属性都需要被设置. 当 Spring 找不到匹配的 Bean 装配属性时, 会抛出异常, 若某一属性允许不被设置, 可以设置 @Authwired 注解的 required 属性为 false
–默认情况下, 当 IOC 容器里存在多个类型兼容的 Bean 时, 通过类型的自动装配将无法工作. 此时可以在 @Qualifier 注解里提供 Bean 的名称. Spring 允许对方法的入参标注 @Qualifiter 已指定注入 Bean 的名称
– @Authwired 注解也可以应用在数组类型的属性上, 此时 Spring 将会把所有匹配的 Bean 进行自动装配.
–@Authwired 注解也可以应用在集合属性上, 此时 Spring 读取该集合的类型信息, 然后自动装配所有与之兼容的 Bean.
–@Authwired 注解用在 java.util.Map 上时, 若该 Map 的键值为 String, 那么 Spring 将自动装配与之 Map 值类型兼容的 Bean, 此时 Bean 的名称作为键值

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!-- 指定Spring IOC容器扫描的包 -->
<!-- resource-pattern  扫描指定的资源 -->
<!--  <context:component-scan base-package="com.test.spring.annotation"
resource-pattern="controller/*.class"
></context:component-scan>-->

<!-- exclude-filter 子节点指定排除那些指定表达式的组件 -->
<!-- include-filter 子节点包含那些表达式的组件,需要配置 use-default-filters为false-->
<context:component-scan base-package="com.test.spring.annotation" >
<!--
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-->
<!-- -
<context:exclude-filter type="assignable" expression="com.test.spring.annotation.TestObject"/>

<context:include-filter type="assignable" expression="com.test.spring.annotation.TestObject"/>
-->
</context:component-scan>
</beans>


package com.test.spring.annotation.repository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.test.spring.annotation.TestObject;
//注解可以通过value属性值标识,bean在IOC容器中的name
@Repository("userRepository")
public class UserRepositoryImlpl implements UserRepository{
@Autowired(required=false)
private TestObject to;
public void save() {
System.out.println("实现接口的save");

}

}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: