什么是@Repository和@Autowired用于。 (弹簧)

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

一个主题是dependency injection和spring bean我想出了finally =)

现在我混淆了两个注释@Autowired和@Repository。 首先Autowiring是什么意思? 然后我为什么要使用它们,使用它们和不使用它们之间有什么区别?

今天我也尝试在spring mvc项目中使用hibernate,我不得不搜索大约15个(类找不到错误的原因)jar文件,因为项目中使用的其他jar文件的依赖项。 这是不是必须这样? 这使得初学者学习java非常困难

谢谢…

@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

两个注释都有不同的用途。

@Autowired :这与您在配置文件中定义的 。 使用@Autowired注释的引用变量(依赖项)将由Spring容器注入@Configuration类中找到的任何匹配的@Bean。
另外,使用@Component,@ Service,@ Repository注释的类也被视为bean,因此它们的对象被注入到匹配的依赖项中。 Spring容器扫描您为“component-scan”或@ComponentScan(“xyz”)提到的类中的bean。

@Repository :这也是一个spring-framework的注释。 当您注释类@Repository时,spring容器会理解它是一个DAO类,并将所有未经检查的exception(从DAO方法抛出)转换为Spring DataAccessException。 DAO类是您编写通过db执行操作的方法的类。

@Autowired和@Repository是两个不同的概念。 1. @ Repository:这将一个类定义为一个存储库,一般来说,你可以简单地使用@Component,但要具体定义,还有3个注释,如Controller,service和repository。主要有两个优点:1。如果你定义了(context:component-scan)在servlet.xml中扫描已定义的包并通过spring找到它自己的包。 2.您从Spring获得的更多优势,如数据库访问错误转换,因此它主要定义为与使用hibernate或jdbc连接数据库的类一起使用。

@Autowired:在spring的运行时注入依赖,意味着在一个类中,自动assembly一个对象,并使用它,所以这个bean将自动生成而无需在xml文件中定义