來源:(https://blog.csdn.net/qq_41026669/article/details/107479927)
初做java項目前,了解一下各package下類的調用關系還是很有必要的
1:controller是為前端提供的訪問入口,不用關心具體的業務邏輯。具體的業務邏輯放在了serviceImpl里,controller只需調用它封裝好的方法即可。你可能會問:直接@Resource一個serviceImpl類不行嗎,為什么要加個service。當然可以這么做,但用接口可以重寫方法,更利於擴展。一般要求要有service的,咱不是要面向接口的編程嘛,最好還是加上吧。
2:service提供業務邏輯要用到的方法,serviceImpl提供方法的具體實現,@Service的a和controller里@Resource下的a要保持一致,否則controller找不到a。出現下面的標志說明沒寫錯,其他類間的調用也會有類似的標志,可以通過這個提示更快的排錯
3:dao為serviceImpl提供操作數據的方法,但方法的具體實現(也就是SQL語句)放在了mapper下的xml文件里,serviceImpl除了復雜它們間的邏輯關系,還可以對目標數據進行一些操作,比如不用從前端獲取的數據可以在serviceImpl里賦值,調試后端代碼時可以在這里給假數據,測方法有沒有問題。同樣,serviceImpl下的b和dao中的b也要保持一致,否則會找不到類。
4:mapper相當於dao的實現類,它下面是xml格式文件,xml里是SQL語句。示例:
寫的方式和用到的注解不只這一種方式,我展示的是我項目中用的