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

meh*_*mak 20 java spring annotations repository autowired

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

一个主题是依赖注入和spring bean我想出了finally =)

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

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

谢谢...

Bog*_*dan 35

@Repository是一个注释,它将特定类标记为数据访问对象,从而阐明了它的作用.同一类别的其他标记是@Service和@Controller

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

  • 实际上,它使注释类符合DataAccessException转换的条件. (2认同)

Aru*_*aaj 7

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

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

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