在Spring中,@Component、@Repository & @Service注解之间有什么区别?
@Component'、
@Repository'和`@Service'注解是否可以在Spring中互换使用,或者它们除了作为一种符号设备外,还提供任何特殊的功能?
换句话说,如果我有一个服务类,我把注解从"@Service "改为"@Component",它的行为是否仍然一样?
或者注释也会影响类的行为和功能?
1957
3
来自Spring Documentation。
它们几乎是一样的--都意味着该类是一个Spring Bean。
@Service
、@Repository
和@Controller
是专门的@Component
。你可以选择用它们来执行特定的动作。比如说。@Controller
豆被spring-mvc使用。@Repository
豆有资格进行持久化异常转换另一件事是,你从语义上将组件指定给不同的层。
@Component
提供的一点是,你可以用它来注解其他注解,然后以与@Service
相同的方式使用它们。例如,最近我做了。
因此,所有用
@ScheduledJob
注解的类都是spring beans,除此之外,还被注册为石英作业。你只需要提供处理特定注释的代码。从数据库连接的角度来看,使用"@Service "和"@Repository "注解很重要。
1.在你所有的网络服务类型的数据库连接中使用
@Service
。 2.2.对所有的存储过程数据库连接使用"@Repository"。如果你不使用适当的注释,你可能会面临被回滚事务覆盖的提交异常。在压力负载测试中,你会看到与回滚JDBC事务有关的异常。