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)

 

posted @   Arbitrary233  阅读(4779)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示