三层加过的注释java_spring框架中三层架构相关的注解
做了這么多年的C++,再去學(xué)Java,確實發(fā)現(xiàn),語言都是相通的,即使是Java的那么多生態(tài),理解起來也并不費勁
Spring 框架目前還在學(xué)習(xí)中,處于 Tourist 階段,目前只求會做,不求原理,等到項目經(jīng)驗豐富,運用熟練,再回頭來研究原理
1、說明
springmvc 框架中將業(yè)務(wù)功能分成了經(jīng)典的三層:持久層、業(yè)務(wù)層和控制層,框架中分別使用 @Repository、@Service 和 @Controller 注解來表示各層,使用 @Component 注解對不好分層的類進(jìn)行注解修飾
這四個注解的作用除了閱讀時分層之外,最重要的是,被其修飾的類會被spring框架掃描并注入到bean容器中,使用時,只需要使用裝配的方式獲取對象即可
這四個注解都有一個屬性 value,該屬性的作用在 spring 中,用于根據(jù)此值獲取注入對象,springboot 中,可以使用 @Autowired 注解自動裝配,所以此屬性用處不大
2、@Repository
顧名思義,@Repository 表示一些持久層的組件,用于標(biāo)注數(shù)據(jù)庫訪問的 DAO 組件
其內(nèi)部會封裝一些 不涉及具體業(yè)務(wù)邏輯 的基本的數(shù)據(jù)庫操作,例如根據(jù)某個字段查找、添加、刪除,封裝數(shù)據(jù)庫query索引等
@Repository 注解標(biāo)記在類上
一般用法如下:
先定義一個接口,聲明基本的接口方法;
添加接口實現(xiàn)類,實現(xiàn)這些接口,@Repository 注解修飾實現(xiàn)類;
示例:
public interface ProductRepository{
public Product findById(Long id);
}
@Repository
public ProductRepositoryImpl implements ProductRepository{
public Product findById(Long id){
//實現(xiàn)方法
}
}
3、@Service
屬于業(yè)務(wù)邏輯層,其內(nèi)部方法 包含具體的業(yè)務(wù)邏輯,一般稱之為 service層 或者 manager層
service層類的內(nèi)部一般會通過注入的方式得到repository層的對象,進(jìn)而進(jìn)行一些復(fù)雜的業(yè)務(wù)邏輯處理
@Service 注解標(biāo)記在類上
4、@Controller
controller 作為MVC的C層,用于分發(fā)前端的請求,其內(nèi)部一般會使用注入的方式得到 service 層對象,進(jìn)行一些請求分發(fā)處理
@Controller 標(biāo)記在類上,表示此類是一個controller,其內(nèi)部的方法用于接受請求,具體的請求方式使用 @RequestMapping 等注解進(jìn)行映射
4.1、 @RestController
@RestController 注解的效果等同于 @Controller + @ResponseBody
使用 @RestController 后,controller 方法返回 java 對象,就不再需要使用 @ResponseBody 注解轉(zhuǎn)換
5、@Component
@Component 一般用于組件,一些需要使用 spring 的依賴注入功能,但是又不好分層的類,可以使用此注解
總結(jié)
以上是生活随笔為你收集整理的三层加过的注释java_spring框架中三层架构相关的注解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql query cache_My
- 下一篇: tomcat 启动项目 页面文字乱码_项