当前位置: 首页 > news >正文

java Resource

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="Bean.UserData"></context:component-scan>
</beans>

此时 我们项目就对刚刚创建的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

http://www.lryc.cn/news/656.html

相关文章:

  • ArkTS语法(声明式UI)
  • 自动化测试实战篇(7)jmeter连接mysql数据库,实现单表、多表、三表查询,并对表中数据进行修改,删除,新增操作
  • 我的网站上线了!
  • 勒索病毒整体攻击态势简单分析
  • Vue资源(组件库、实用插件)
  • java rpc框架 中的自定义异常类型的全局处理
  • 面试题:Redis的内存策略
  • idea中使用Git
  • C++派生类指针赋值给基类指针问题(虚函数和非虚函数不同)
  • 数据库实践LAB大纲 04 触发器
  • Win10系统电脑开机后总是蓝屏无法使用怎么办?
  • Node——使用nvm切换node版本
  • go语言实现的一个基于go-zero框架的微服务影院票务系统cinema-ticket
  • ArcGIS API for JavaScript 4.15系列(3)——Dojo中的css样式操作
  • “赶快回家网”首页制作
  • JavaWEB-Servlet
  • springboot集成mqtt
  • Lecture3 梯度下降(Gradient Descent)
  • 深入了解DSP
  • Flink反压如何排查
  • windows无法访问指定设备路径或文件怎么办?2个解决方案
  • 冷知识|鹤顶红还能用来修长城?
  • 【GD32F427开发板试用】在IAR环境中移植RTX5
  • MySQl学习(从入门到精通15)
  • 前端构建工具 Vite
  • 若依框架---PageHelper分页(十)
  • 苹果手机专用蓝牙耳机有哪些?与iphone兼容性好的蓝牙耳机
  • CS-TPGS;壳聚糖修饰维生素E;Chitosan-g-TPGS
  • easyx的基本使用(万字解析)
  • 基于OpenCV 的车牌识别