java Resource
创始人
2024-05-24 00:07:51
0

参看本文前 你要先了解 spring中的 Autowired和Qualifier 注解
如果之前没有接触过 可以查看我的文章
java spring 根据注解方式按(类型/名称)注入Bean
然后 创建一个java项目

引入spring注解方式 所需要的包
在这里插入图片描述
然后 在src下创建包 我们这里直接叫 Bean
在Bean下创建包 叫UserData

然后在src下创建 bean.xml 配置文件 参考代码如下




此时 我们项目就对刚刚创建的UserData开启了注解扫描

然后在UserData下创建一个类 我们这里就叫 User
参考代码如下

package Bean.UserData;import org.springframework.stereotype.Component;@Component(value = "User")
public class User {public String toString(){return "Umint";}
}

然后 我们在同目录下 在创建一个类 叫 depart
参考代码如下

package Bean.UserData;import org.springframework.stereotype.Component;import javax.annotation.Resource;@Component(value = "depart")
public class depart {@Resourceprivate User user;public void setUser(User user){this.user = user;}public String toString(){return "user="+this.user;}
}

这里 我们就用了一个Resource注解 放在这上面 就起到了一个Autowired的作用 根据类型注入对象
那么 我们就会扫描出User 对象类型的类 注入到这里面

我们在src下创建测试类 text 参考代码如下


import Bean.UserData.depart;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class text {public static void main(String args[]) {ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");depart depart = context.getBean("depart", depart.class);System.out.println(depart);}
}

运行结果如下
在这里插入图片描述
这里可以看到 我们Resource是可以当Autowired用的
但可能有人说 但他不能配合Qualifier啊
没事啊 配合不了自己上啊
我们改一下depart的代码
改成如下代码

package Bean.UserData;import org.springframework.stereotype.Component;import javax.annotation.Resource;@Component(value = "depart")
public class depart {@Resource(name = "User")private User user;public void setUser(User user){this.user = user;}public String toString(){return "user="+this.user;}
}

还是能正常执行 这次 Resource 指定name为User 去根据名称再扫描

虽然说Resource挺全面的 但 Autowired和Qualifier 分工更明确 场景适应肯定更强
且 Resource并不是spring官方提供的注解 spring官方肯定还是建议用 spring提供的Autowired和Qualifier

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...