首页 > 编程语言 > 详细

8 -- 深入使用Spring -- 2...6 Spring 4.0 增强的自动装配和精确装配

时间:2017-02-11 19:05:45      阅读:367      评论:0      收藏:0      [点我收藏+]

      8.2.6 Spring 4.0 增强的自动装配和精确装配

        Spring提供了@Autowired 注解来指定自动装配,@Autowired可以修饰setter方法、普通方法、实例变量和构造器等。当使用@Autowired标注setter方法时,默认采用byType自动装配策略。

        

package edu.pri.lime._8_2_6.bean;

import java.util.Set;

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

@Component
public class Chinese {

    private Axe axe;
    private Dog dog;

    /*
     * 指定setter方法进行自动装配,Spring将会自动搜索容器中类型为Axe的Bean实例,并将该Bean实例作为setter方法的参数传入。
     * 如果找到多个类型为Axe的Bean,Spring会引发异常。如果没有找到Axe类型的Bean,Spring什么都不执行,也不会引发异常
     */
    @Autowired
    public void setAxe(Axe axe) {
        this.axe = axe;
    }
    @Autowired
    public void setDog(Dog dog) {
        this.dog = dog;
    }
    /*
     * 当使用@Autowried修饰带多个参赛的普通方法是,Spring会自动到容器中需找配型匹配的Bean,
     */
    @Autowired
    public void prepare(Axe axe,Dog dog){
        this.axe = axe;
        this.dog = dog;
    }
    /*
     * 当使用@Autowired修饰一个实例变量时,Spring将会把容器中与该实例类型匹配的Bean设置为该实例变量的值。
     * 如果容器中包含多于一个的Axe实例,则Spring容器会抛出BeanCreateException异常。
     */
    @Autowired
    public Chinese(Axe axe , Dog dog){
        this.axe = axe;
        this.dog = dog;
    }
    /*
     * @Autowired 可以用于修饰数组类型的成员变量。
     * Spring 会自动搜索容器中所有Axe实例,并以这些Axe实例作为数组元素来创建数组,最后将该数组赋给数组类型的成员变量。
     */
    @Autowired
    private Axe[] axes;
    
    /*
     * @Autowired 标注集合类型的实例变量,或标注形参类型的集合方法。
     * 对于集合类型的参数而言,必须使用泛型。
     */
    @Autowired
    public void setAxes(Set<Axe> axeSet){
    }
    public Axe getAxe() {
        return axe;
    }
    public Dog getDog() {
        return dog;
    }
    public Axe[] getAxes() {
        return axes;
    }
    public void setAxes(Axe[] axes) {
        this.axes = axes;
    }
    
    
}

        Spring 4.0 增强后的@Autorwired注解还可以根据泛型进行自动装配。

啦啦啦

啦啦啦

8 -- 深入使用Spring -- 2...6 Spring 4.0 增强的自动装配和精确装配

原文:http://www.cnblogs.com/ClassNotFoundException/p/6389533.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!