Spring源码的了解(三) Spring的注解的方法实现控制反转

本文详细介绍了如何在Spring框架中使用注解(@Component, @Autowired, @Resource)进行控制反转(IoC)和依赖注入(DI),并对比了@AutoWired和@Resource的区别。通过具体实例展示了配置扫描包、创建XML配置文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习地址:https://www.bilibili.com/video/av35914008/(别问 问就是蹭流量)(https://www.majiaxueyuan.com/front/showcoulist

通过注解方式进行控制反转和依赖注入(还是用User-UserDao-UserService的流程来)

是创建好了的对象User UserDao 以及UserService

这次不使用beans.xml文件,新建一个

 

目录

1.创建annotation的xml文件

2.配置扫描包

3.添加注解(Component,Autowired,Resource)

4.运行


1.创建annotation的xml文件(名字随意)

new ->xml Configuretion->Spring Config

2.配置扫描包

在新建好的配置文件添加扫描包

 <context:component-scan base-package="com.zqj"/>
<!-- 扫描包 扫描com.zqj下面的 -->

3.添加注解(Component,Autowired,Resource)

@component 使用来实现控制反转的,将对象权限赋予Spring

我把注解放到了User和 UserDao,UserService。让三个类

可以看到。在Spring的beans上看到已经加载的数据

接着是需要使用@AutoWired去实现依赖注入,也就是取数据

在使用到的对象上面添加注解 @Autowired

4.运行

运行测试代码


public class EntityTest {

    public static void main(String[] args) {

       ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("annotation.xml");

       UserService userService = (UserService) classPathXmlApplicationContext.getBean("userService");

       userService.doUserService();

    }

}

运行后可以看到

也就是说对象通过Spring都是能够得到的。

 

关于@AutoWired 和 @Resource的区别

@AutoWired是基于类型来判断的

@Resource是基于名称来判断的

举个栗子:

@Autowired 和 @Resource如果不添加名称是都是可以实现的因为类和名称都是一样的

我们在Componment上添加一个名称。

再来试试

如果名称不对,就会报错

执行的话就会说无法找到bean UserDao

将其该回来

现在就是正常的运行

 

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值