java的dao层service层和web各自负责什么?

java的spring dao层service层和web各自负责什么?
@Override这些@的详解,就是哪些情况下用哪种@?
spring注入两种方式给个实例,说明下区别,谢谢

想去面馆吃面,走进面馆,这时候看到菜单列表有很多种面食,这时你和服务员说我要一碗牛肉面,说完。服务员和后厨人员说:“一碗牛肉面”。
后厨开始拉面,很快过后,牛肉面已好。你可以吃掉,也可以再来一碗。

面馆相当于是web(网站),
菜单列表相当于是面店老板提供的业务逻辑(牛肉面,素面等等),也就是service
后厨人员就是dao,只负做拉面。
还有一个负责处理前台需求和后厨交接的人员,就是服务员,一般在java里面叫controller

打个比方,controller是研发总监,service是项目经理,dao是程序员

dao是数据库操作。
service处理业务逻辑,如登录判断。
web显示界面