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

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

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

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

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

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自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是可选的,如果不存在也不会出现错误。

    总结:

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


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

个人拙见,最好还是你自己多试试把原因找到。

不是因为对方是不是华为出来的,大厂螺丝钉,还不会SQL,这个没啥了不起的。

但是看你的描述应该不是Autowired注解编译不过,而是运行不起来,或者你的IDE加了代码检查插件之类的。

运行不起来,需要具体看运行不起来是啥报错。