在Spring框架里边,@Controller、@Service、@Componet、@Repository 注解都是用来标记一个java类,被标记的java类最终会被Spring容器扫描到,然后注册到Spring ioc容器里面去。
一般情况下,我们是在控制层组件上面添加@Controller注解,在业务层上面添加@Service注解,在数据访问层上面添加@Repository注解,有一些组件它既不是控制层又不是业务层,也不是数据访问层的,你可以添加@Componet注解。
这几个注解从技术角度上面来说几乎是一样的,他们的区别主要是语义上的区别而已,也就是说哪个注解应该用在哪个层上而已。