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

小程序的定义杭州seo教程

小程序的定义,杭州seo教程,学习做网站建设的学校,学做网站要学哪些Resource 和Autowire Resource 是 Java 中用于 依赖注入(Dependency Injection, DI)的一种注解,属于 J2EE(Jakarta EE) 规范,来自 javax.annotation.Resource。 它的主要作用是在 Spring 或其他依赖注入框…

@Resource 和@Autowire

@ResourceJava 中用于 依赖注入(Dependency Injection, DI)的一种注解,属于 J2EE(Jakarta EE) 规范,来自 javax.annotation.Resource

它的主要作用是在 Spring 或其他依赖注入框架(如 Java EE 容器)中注入 Bean


1. @Resource 的基本用法

import javax.annotation.Resource;
import org.springframework.stereotype.Service;@Service
public class UserService {@Resourceprivate UserRepository userRepository; // 自动注入 UserRepositorypublic void saveUser(User user) {userRepository.save(user);}
}

作用

  • @Resource 自动查找 Spring 容器中的 UserRepository Bean 并注入。
  • 作用类似于 @Autowired

2. @Resource vs @Autowired

@Resource@Autowired
来源javax.annotation.Resource(J2EE 规范)org.springframework.beans.factory.annotation.Autowired(Spring)
默认方式按名称name 属性)注入按类型type)注入
可选属性name(按 Bean 名称)和 type(按 Bean 类型)仅按类型
依赖 Spring?❌(兼容 J2EE)✅(Spring 专有)

📌 主要区别

  • @Resource 默认按名称(如果 name 为空,则按类型)。
  • @Autowired 默认按类型(如果存在多个匹配 Bean,可以加 @Qualifier 指定)。
  • 如果需要 J2EE 兼容性(如 Tomcat、Jakarta EE),建议使用 @Resource

3. @Resource 注入的三种方式

方式 1:按名称注入(默认)

@Resource(name = "userRepository")
private UserRepository userRepo;

会查找 Spring 容器中的 userRepository Bean,并注入。


方式 2:按类型注入

如果不指定 name,则 默认按类型查找

@Resource
private UserRepository userRepository;

如果 UserRepository 只有一个 Bean,则成功注入

如果有多个 Bean,可能会报错

NoUniqueBeanDefinitionException: expected single matching bean but found 2

解决方法

  • 通过 name 指定
  • 或者使用 @Primary 标注主 Bean
  • 或者使用 @Qualifier(如果改用 @Autowired

方式 3:在方法上使用

@Resource
public void setUserRepository(UserRepository userRepository) {this.userRepository = userRepository;
}

Spring 调用该方法,并注入 UserRepository Bean


4. @Resource 使用场景

✅ 场景 1:在 Spring Boot 项目中

一般用于 Service 层或 DAO 层

@Service
public class OrderService {@Resourceprivate OrderRepository orderRepository;public Order findOrder(Long id) {return orderRepository.findById(id).orElse(null);}
}

✅ 场景 2:在非 Spring 框架的 Java EE 应用

可以注入 JNDI 资源(如 DataSource)

@Resource(name = "jdbc/MyDataSource")
private DataSource dataSource;

用于 Java EE 服务器环境(Tomcat、GlassFish)


5. 什么时候用 @Resource?

场景推荐注解
需要 Spring 兼容性@Autowired
需要 J2EE 兼容性(Tomcat、GlassFish)@Resource
需要 按名称注入@Resource(name="beanName")
需要 按类型注入@Autowired(默认)

6. 结论

  • @Resource 主要用于 按名称(默认)或按类型 注入 Bean。
  • 如果希望 Java EE 兼容性(如 JNDI 注入),用 @Resource
  • 如果只使用 Spring,推荐 @Autowired(更灵活)

🚀 最佳实践

  • Spring 框架项目 首选 @Autowired
  • Java EE 兼容项目 使用 @Resource
  • 需要 按名称 注入时,@Resource(name="beanName") 更合适。
http://www.dtcms.com/wzjs/276190.html

相关文章:

  • 如果自己做网站知名的建站公司
  • 没有做网站能备案吗网络平台推广有哪些渠道
  • 自适应型网站建设线上推广活动有哪些
  • 网站如何提升流量青岛百度整站优化服务
  • 成品短视频软件推荐下载免费做优化的网站
  • 淳安网站建设seo月薪
  • wordpress教育培训模板seo类目链接优化
  • 北京装饰公司排名网站seo优化软件
  • 西安做网站需要多少钱亿速云
  • 做网站涉及个人隐私百度一下你就知道官网新闻
  • 网站实名认证必须做么win10系统优化软件哪个好
  • 网页模板素材网站百度指数资讯指数
  • 网站建设保障措施天津seo排名扣费
  • 网站开发 兼职网页分析报告案例
  • 莱西网站建设seo分析
  • 保定网站设计公司seo技术交流
  • 网站建设广告模板站长工具在线平台
  • 网站无法下载视频 怎么做免费网站软件
  • 做网站用商标吗关键词分词工具
  • 企业网站 合同智能营销方法
  • 未备案网站微信营销方式
  • 河南有名的做网站公司seo销售
  • wordpress建站免费吗百度关键词热搜
  • 哈尔滨做网站建设百度搜索关键词查询
  • 做网站的网站深圳网站优化平台
  • 南县网站建设推荐2021小说排行榜百度风云榜
  • 用java做网站后台怎么样太原百度网站快速排名
  • 福州外贸网站建设网络营销的核心是用户吗
  • 网站建设好了怎么发布外链推广是什么意思
  • 百度产品大全什么是seo站内优化