walkuere 2023-06-18 22:31 采纳率: 55.6%
浏览 36
已结题

Resource改成Autowired报错,改配置还是改注解方式好?

Resource改成Autowired报错是为什么呢?
不急,就是偶然看到别人说Autowired和Resource注解,想起了以前的事情
以前一个老板招了两个程序员,一个是我,一起做一个项目,他用的idea,当时我还是eclipse
然后他那边Autowired好的,我复制过来我这里就编译报错
有两种办法能改好,一种是后面加(required=false),但是运行时候好像还是报错
一种是把Autowired改成Resource,这个就完全正常了
然后我跟他商量能不能他那边也改成Resource,这样不用每次更新代码我都改了,对方骂了我一顿
我提到了对方是华为出来的程序员,SQL什么都不会,SQL都是我弄的,弄完告诉他,他还反过来在老板面前说我SQL弄错了,我抱怨了一下这件事。

然后知乎上很多程序员都在下面骂我,说我活该,还骂得少了,说应该我自己解决问题
除了少数骂我人信息主页是华为程序员,其他的我真的不太理解,一个刚起步的项目,也就没几个Autowired,改一下注解方式就可以解决的问题,配置不知道怎么弄,让我自己另外想办法解决,还说骂的好该骂,是不是华为光环的原因啊

你们碰到这种问题都是硬刚环境配置,而不是找通用代码能解决吗

因为我不是一直做程序员,有时候会做一些翻译和运维工作。而且做程序员也是SSM接触得少,写SQL和AI多

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-19 08:33
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答来自chatgpt:

      首先,Resource和Autowired这两个注解用法有些不同,所以不能直接替换。Resource注解是由Java EE提供的,Autowired注解是Spring框架提供的。

      其次,编译时错误可能是因为你的Eclipse开发环境没有正确地配置Spring框架,需要确保Spring的核心库和相关依赖库已被正确添加到项目中。

      具体解决方法如下:

      1. 确认是否添加了Spring依赖库

      在pom.xml或build.gradle中确认是否添加了Spring的核心库和相关依赖库。若没有,可手动添加或使用Maven/Gradle等构建工具管理依赖。

      举个例子,以下是在pom.xml中添加Spring依赖库的方式:

      <dependencies>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>5.3.6</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.3.6</version>
        </dependency>
        <!-- 其他依赖库 -->
      </dependencies>
      
      1. 确认是否开启了Spring注解扫描

      在Spring中,我们需要开启注解扫描功能才能使用@Autowired注解。可以在Spring的配置文件中添加以下代码开启扫描:

      <context:component-scan base-package="com.example" />
      

      其中,base-package属性指定扫描的包名。

      1. 确认是否正确使用@Autowired注解

      @Autowired注解默认是要求依赖对象必须存在,若不存在则会出现编译时错误。如果想要使依赖对象可选,则需要在注解上添加(required=false)属性。

      举个例子,在使用@Autowired注解时需要确保以下几点:

      • 被注入的实例变量定义为private,并添加@Autowired注解;
      • 被注入的实例变量对应的类必须是Spring管理的Bean;
      • 不能存在多个相同类型的Bean,否则会出现歧义性错误。

      以下是使用@Autowired注解的例子:

      @Component
      public class MyService {
        @Autowired(required=false)
        private MyDao myDao;
      
        // ...
      }
      

      在以上方法中,添加了@Autowired(required=false)注解,表示MyDao是可选的,如果不存在也不会出现错误。

      总结:

      根据你的问题描述,可以尝试按照以上三个步骤进行解决。如果还解决不了问题,可以提供具体的错误信息。至于是否硬刚环境配置,还是要看具体实际情况,如果配置相对简单,可以自己解决,否则可以考虑寻找专业人士帮助。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 6月18日

悬赏问题

  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了