Resource改成Autowired报错是为什么呢?
不急,就是偶然看到别人说Autowired和Resource注解,想起了以前的事情
以前一个老板招了两个程序员,一个是我,一起做一个项目,他用的idea,当时我还是eclipse
然后他那边Autowired好的,我复制过来我这里就编译报错
有两种办法能改好,一种是后面加(required=false),但是运行时候好像还是报错
一种是把Autowired改成Resource,这个就完全正常了
然后我跟他商量能不能他那边也改成Resource,这样不用每次更新代码我都改了,对方骂了我一顿
我提到了对方是华为出来的程序员,SQL什么都不会,SQL都是我弄的,弄完告诉他,他还反过来在老板面前说我SQL弄错了,我抱怨了一下这件事。
然后知乎上很多程序员都在下面骂我,说我活该,还骂得少了,说应该我自己解决问题
除了少数骂我人信息主页是华为程序员,其他的我真的不太理解,一个刚起步的项目,也就没几个Autowired,改一下注解方式就可以解决的问题,配置不知道怎么弄,让我自己另外想办法解决,还说骂的好该骂,是不是华为光环的原因啊
你们碰到这种问题都是硬刚环境配置,而不是找通用代码能解决吗
因为我不是一直做程序员,有时候会做一些翻译和运维工作。而且做程序员也是SSM接触得少,写SQL和AI多
不知道你这个问题是否已经解决, 如果还没有解决的话:首先,Resource和Autowired这两个注解用法有些不同,所以不能直接替换。Resource注解是由Java EE提供的,Autowired注解是Spring框架提供的。
其次,编译时错误可能是因为你的Eclipse开发环境没有正确地配置Spring框架,需要确保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>
在Spring中,我们需要开启注解扫描功能才能使用@Autowired注解。可以在Spring的配置文件中添加以下代码开启扫描:
<context:component-scan base-package="com.example" />
其中,base-package属性指定扫描的包名。
@Autowired注解默认是要求依赖对象必须存在,若不存在则会出现编译时错误。如果想要使依赖对象可选,则需要在注解上添加(required=false)属性。
举个例子,在使用@Autowired注解时需要确保以下几点:
以下是使用@Autowired注解的例子:
@Component
public class MyService {
@Autowired(required=false)
private MyDao myDao;
// ...
}
在以上方法中,添加了@Autowired(required=false)注解,表示MyDao是可选的,如果不存在也不会出现错误。
总结:
根据你的问题描述,可以尝试按照以上三个步骤进行解决。如果还解决不了问题,可以提供具体的错误信息。至于是否硬刚环境配置,还是要看具体实际情况,如果配置相对简单,可以自己解决,否则可以考虑寻找专业人士帮助。
个人拙见,最好还是你自己多试试把原因找到。
不是因为对方是不是华为出来的,大厂螺丝钉,还不会SQL,这个没啥了不起的。
但是看你的描述应该不是Autowired注解编译不过,而是运行不起来,或者你的IDE加了代码检查插件之类的。
运行不起来,需要具体看运行不起来是啥报错。