1.@Repository,這個注解和@Component、@Controller和我們最常見的@Service注解是一個作用,都可以將一個類聲明為一個Spring的Bean。它們的區別到不在於具體的語義上,更多的是在於注解的定位上。之前說過,企業級應用注重分層開發的概念,因此,對這四個相似的注解應當有以下的理解:
- @Repository注解,對應的是持久層即Dao層,其作用是直接和數據庫交互,通常來說一個方法對應一條具體的Sql語句
- @Service注解,對應的是服務層即Service層,其作用是對單條/多條Sql語句進行組合處理,當然如果簡單的話就直接調用Dao層的某個方法了
- @Controller注解,對應的是控制層即MVC設計模式中的控制層,其作用是接收用戶請求,根據請求調用不同的Service取數據,並根據需求對數據進行組合、包裝返回給前端
- @Component注解,這個更多對應的是一個組件的概念,如果一個Bean不知道屬於拿個層,可以使用@Component注解標注
這也體現了注解的其中一個優點:見名知意,即看到這個注解就大致知道這個類的作用即它在整個項目中的定位。