• 15、spring注解学习(自动装配)——@Autowired标注在方法、构造器和参数位置上


    1、@Autowired 标注在方法上
    标注在方法,Spring容器创建当前对象,就会调用方法,完成赋值;
    方法使用的参数,自定义类型的值从ioc容器中获取。

    配置类代码
    @Configuration
    @Import({Boss.class, Car.class})
    public class MainConifgOfAutowired
    
    public class Boss {
    @Autowired
    public void setCar(Car car) {
      this.car = car;
    }
    }

    测试部分代码

    Boss boss = ac.getBean(Boss.class);
            System.out.println(boss);
            Car car = ac.getBean(Car.class);
            System.out.println(car);
    输出:
    car相等 证明@Autowired 使用在方法上可以获取值
    Boss [car=com.springanno.pack.Car@47d90b9e]
    com.springanno.pack.Car@47d90b9e

    另外:
    注:
    
    @Bean+方法参数;参数从容器中获取;默认不写@Autowired效果是一样的;都能自动装配
    这种方式也可以自动装配不需要@Autowired
    @Bean标注的方法创建对象的时候,方法参数的值从容器中获取
       @Bean
        public Boss boss(Car car){
            Boss boss = new Boss();
            boss.setCar(car);
            return  boss;
        }
    2、@Autowired 使用在构造器上
    
    如果组件只有一个有参构造器,这个有参构造器的@Autowired可以省略,参数位置的组
    件还是可以自动从容器中获取
      @Autowired
        //构造器要用的组件,都是从容器中获取
        public Boss(Car car){
            this.car = car;
            System.out.println("Boss...有参构造器");
        }
    
    测试
    Boss boss = ac.getBean(Boss.class);
            System.out.println(boss);
            Car car = ac.getBean(Car.class);
            System.out.println(car);
    
    输出:
    car相等 证明@Autowired 使用在构造器上可以获取值
    Boss [car=com.springanno.pack.Car@460d0a57]
    com.springanno.pack.Car@460d0a57

    3、@Autowired 使用在参数上

    method(@Autowired Car car)
  • 相关阅读:
    bcrypt加密算法原理和应用
    spring security 防止iframes攻击
    angularjs在eclipse下不要随意ctrl+shift+f缩进代码
    第五章 容器之元组
    第五章 容器之列表
    第四章 函数
    第3章 编程概论
    mysql排序分组
    数据表的基本操作
    数据库基本操作
  • 原文地址:https://www.cnblogs.com/lyh233/p/12449621.html
Copyright © 2020-2023  润新知