这三个没什么功能上的差别,差别只是在语义上,@Repository/@Service/@Controller分别代表了特定语义的类,这个有点类似于HTML 5提出的语义化标签,你说HTML 5里面的“header”和“div”有什么差别呢,其实功能上来说没有,只是语义表达的更清楚。
@Repository:用于标注数据访问组件,即DAO组件我们注解这个类,更多的是对它有个数据库操作的管理,比如你继承了spring自己的hibernateDAo这样的东西,那怎么给你注入一些数据库操作的元素了,就靠它了,所以这个不是随便注释的。DAO,一般用@Repository,它这一层是数据的入口和出口,对数据库最基本的操作,有时候我们注解这个类,更多的是对它有个数据库操作的管理,比如你继承了spring自己的hibernateDAo这样的东西,那怎么给你注入一些数据库操作的元素了,就靠它了,所以这个不是随便注释的。
@Service:用于业务层
@Controller:控制层(Web 层)