SSM框架搭建中基本的注解及其作用

最近换了新东家,新的项目框架用的是SSM框架,以前用SpringBoot比较多,对于SSM框架的很多配置记不清了。SpringBoot是SSM框架的一种更直接更简便的操作方式,简单的用的多了,老一代经典框架倒忘了,简直是作为程序员的奇耻大辱,特此记录,警醒自己。

SSM架构一般都是实体类(entity)、工具类(utils)、以及三层架构(dao,service.controller 也就是model层,view层以及controller层),在这里记录一下每个层常用的基本注解。

1.实体类

实体类的注解有@Entity、@Table,最近又发现了一个@Data,觉得这个注解还是挺有趣的,介绍一下三者的异同:
相同点:三者都可以做对象与数据库的映射,将数据库中的表与实体类相对应。
不同点:
@Entity表示的是该类是一个实体类,使用的是默认的ORM映射规则;
@Table表示的是数据库与实体类之间更为精确的映射关系,可以与其搭配使用的还有@Id(映射主键id)、@TableFiled(映射数据库其他字段),可以将数据库中表的字段与实体类中的属性一一对应,更加准确;
@Data:它是lombok插件中的,它使用起来会便捷一些。因为lombok在编译期间的时候就默认为@Data标注的实体类提供了get/set方法,不用我们自己去生成,而且减少了书面代码量,看起来比较规范。

2.DAO层注解

dao层的注解好像只见过@Repository,不过他可以在任何一个地方写上去,作用是告诉spring创建实例化的bean,然后供用实例化的bean去自动注入,完成三层架构中的互相调用,不过感觉好像不写也没事?以前上学的时候没在dao层加过注解,不过最好还是加吧,更规范,也可以预防后期某些细微的不容易发现的错导致项目周期延长。。

3.service层注解

service层的注解就比较多了,因为是业务层,大部分的业务代码在这里完成,所以注释也会多一些。首先,@service和@component,这两个注解是可以互相替换使用的,而且有一个前辈对我说过一句话:如果你不知道用@service和@component当中的哪一个好,就用@service,不过这些注解也可以说是一样的。在service层也可以用@Repository,作用也是一样的。另外就是在service层比较常见的@Transacational注解,这个是事务注解,在业务代码中有些必须保持数据一致性的操作中,为了防止执行过程中出错导致数据不一致,就可以用这个注解来解决。

4.controller注解

controller层的注解主要是针对逻辑控制的,比如@RequestMapping,就是做请求资源映射的,也就是写访问路径的地方,里面也可以定义请求的方法,比如POST、GET这种。然后是@Controller,在controller必须要有的注解,有杠精要说了@RestController也行啊!当然,不过@RestController也是@ResponseBody+@Controller,本质上还是没有脱离@Controller。还有就是@RequestBody,作用是接收前端传递过来的json数据,并转换成对应的类型。作用相反的是@ResponseBody:它的作用是把后台想要传递给前台的对象类型转换成json类型,方便页面进行操作。还有@PathVariable获取路径上的参数@RequestParam请求参数等等,比较简单就不列举了。

另外在搭建步骤上参考了这个知乎大佬的文章,附上链接:https://zhuanlan.zhihu.com/p/54426655

发布了15 篇原创文章 · 获赞 2 · 访问量 811

猜你喜欢

转载自blog.csdn.net/oak_javaLearner/article/details/103768970