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)
分类:
Spring
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)