三层加过的注释java_spring框架中三层架构相关的注解
做了这么多年的C++,再去学Java,确实发现,语⾔都是相通的,即使是Java的那么多⽣态,理解起来也并不费劲
Spring 框架⽬前还在学习中,处于 Tourist 阶段,⽬前只求会做,不求原理,等到项⽬经验丰富,运⽤熟练,再回头来研究原理
1、说明
springmvc 框架中将业务功能分成了经典的三层:持久层、业务层和控制层,框架中分别使⽤ @Repository、@Service 和 @Controller 注解来表⽰各层,使⽤ @Component 注解对不好分层的类进⾏注解修饰
这四个注解的作⽤除了阅读时分层之外,最重要的是,被其修饰的类会被spring框架扫描并注⼊到bean容器中,使⽤时,只需要使⽤装配的⽅式获取对象即可
这四个注解都有⼀个属性 value,该属性的作⽤在 spring 中,⽤于根据此值获取注⼊对象,springboot 中,可以使⽤ @Autowired 注解⾃动装配,所以此属性⽤处不⼤
2、@Repository
顾名思义,@Repository 表⽰⼀些持久层的组件,⽤于标注数据库访问的 DAO 组件
其内部会封装⼀些 不涉及具体业务逻辑 的基本的数据库操作,例如根据某个字段查、添加、删除,封装数据库query索引等
@Repository 注解标记在类上
⼀般⽤法如下:
先定义⼀个接⼝,声明基本的接⼝⽅法;
添加接⼝实现类,实现这些接⼝,@Repository 注解修饰实现类;
⽰例:
public interface ProductRepository{
mvc和三层架构的理解public Product findById(Long id);
}
@Repository
public ProductRepositoryImpl implements ProductRepository{
public Product findById(Long id){
//实现⽅法
}
}
3、@Service
属于业务逻辑层,其内部⽅法 包含具体的业务逻辑,⼀般称之为 service层 或者 manager层
service层类的内部⼀般会通过注⼊的⽅式得到repository层的对象,进⽽进⾏⼀些复杂的业务逻辑处理
@Service 注解标记在类上
4、@Controller
controller 作为MVC的C层,⽤于分发前端的请求,其内部⼀般会使⽤注⼊的⽅式得到 service 层对象,进⾏⼀些请求分发处理
@Controller 标记在类上,表⽰此类是⼀个controller,其内部的⽅法⽤于接受请求,具体的请求⽅式使⽤ @RequestMapping 等注解进⾏映射
4.1、 @RestController
@RestController 注解的效果等同于 @Controller + @ResponseBody
使⽤ @RestController 后,controller ⽅法返回 java 对象,就不再需要使⽤ @ResponseBody 注解转换5、@Component
@Component ⼀般⽤于组件,⼀些需要使⽤ spring 的依赖注⼊功能,但是⼜不好分层的类,可以使⽤此注解

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。