@Repository和@Autowired用途是什么。(春季)

我正在学习Java3个月,有时我无法理解某些东西的使用目的。

一个主题是依赖注入和春豆,我终于弄清楚了=)

现在我对@Autowired和@Repository的两个注释感到困惑。首先,自动布线是什么意思?那么我为什么要使用它们,使用它们和不使用有什么区别?

同样在今天,我试图在春季mvc项目中使用hibernate,由于项目中使用的其他jar文件的依赖性,我不得不搜索大约15个(导致类未找到错误的原因)jar文件。这是必须这样吗?这使得初学者学习Java非常困难

谢谢。。。


答案 1

@Repository是一个批注,它将特定类标记为数据访问对象,从而阐明其角色。同一类别的其他标记是@Service和@Controller

@Autowired是一个具有完全不同含义的注释:它基本上告诉DI容器注入依赖项。更多信息,请访问 http://apollo89.com/java/spring-framework-2.5.3/api/org/springframework/beans/factory/annotation/Autowired.html
教程点
docs.spring.io 编辑更多信息


答案 2

这两个批注具有不同的用途。

@Autowired:这与您在配置文件中定义的相同。用@Autowired注释的引用变量(依赖项)将由Spring容器作为@Configuration类中找到的任何匹配@Bean注入。
此外,用@Component,@Service@Repository注释的类太被视为bean,因此它们的对象被注入到匹配的依赖项中。Spring 容器扫描您提到的“组件扫描”或@ComponentScan(“xyz”)类中的豆子。<bean="xyz" autowire="byType">

@Repository:这也是一个弹簧框架的注释。当你@Repository注释一个类时,spring容器会理解它是一个DAO类,并将所有未经检查的异常(从DAO方法引发)转换为Spring DataAccessException。DAO 类是编写方法以在 db 上执行操作的类。


推荐