声明:本博文参考了一些博主的博文,这里表示抱歉。自己也稍微整理一下,供自己学习记录,如有错误请大佬们指正,谢谢!

作者:借我丹青妙笔

1. @Controller、@RestController、@Service、 @Repository

@Controller: 用于标识处理器类,作用于控制层(controller层)。它注解的类进行前端请求的处理,转发,重定向。包括调用Service层的方法。

@RestController: 相当于@ResponseBody + @Controller合在一起的作用,与@Controller相比我更常用@RestController一些。

@Service: 作用于业务逻辑层(service层)。

@Repository: 作用于持久层(dao层)。

@RequestMapping:请求到处理器功能方法的映射规则,可定义到类和方法。常用参数:value、method 。可将@RequestMapping标签定义到类名处或方法名处窄化路径。该注解有六个属性:

1、 value, method;
value:     指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method:  指定请求的method类型, GET、POST、PUT、DELETE等;
2、 consumes,produces;(不常用)
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
3、 params,headers;(不常用)
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

当@RequestMapping("/list")只带有一个参数,参数默认为value。相当于

@RequestMapping(value = "/list")。

此时我们访问下面代码中的list()方法的路径为:localhost:8080/项目名/teacher/list

@RestController
@RequestMapping("/teacher")
public class TeacherController {@Resourceprivate ITeacherService teacherService;@RequestMapping("/list")public Map<String,Object> list(Teacher teacher){Map<String,Object> map = new HashMap<>();List<Teacher> teachers = teacherService.listTeacher(teacher);map.put("msg","查询成功");map.put("code",0);map.put("data",teachers);return map;}}

Spring 4.3 引入了方法级注解的变体,也被叫做 @RequestMapping的组合注解。组合注解可以更好的表达被注解方法的语义。它们所扮演的角色就是针对 @RequestMapping 的封装,而且成了定义端点的标准方法。

例如,@GetMapping是一个组合注解,它所扮演的是 @RequestMapping(method =RequestMethod.GET) 的一个快捷方式。

方法级别的注解变体有如下几个:

  • @GetMapping (常用于查询方法)
  • @PostMapping (常用于增加方法)
  • @PutMapping (常用于修改方法)
  • @DeleteMapping (常用于删除方法)

@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

2. @Autowired和@Resource的区别

@Resource:是用来实现依赖注入的,此注解是byName自动注入的,属于Spring的注解     org.springframework.beans.factory.annotation.Autowired

@Autowired:也是用来实现依赖注入的,但是此注解是byType自动注入的,不属于Spring的注解,JDK1.6支持的注解。javax.annotation.Resource

共同点:

  • spring都支持
  • 都作用在字段和setter方法上

不同点:

  • @Resource属于Spring的注解,@Autowired是JDK1.6支持的注解
  • @Resource不允许找不到bean的情况,而Autowired允许(@Autowired(required = false))
  • @Resource默认通过name查找,而@Autowired默认通过type查找

总结:@Autowired自动注解,一个类,俩个实现类,Autowired就不知道注入哪一个实
现类,而@Resource有name属性,可以区分。(推荐使用@Resource,但如果每个接口只对应一个实现类就无所谓用哪一个)。

SSM常用注解及其含义相关推荐

  1. java ssm常用注解_SSM框架中常用的注解

    @Controller:在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model , ...

  2. @aspect注解类不生效_Spring Boot从入门到精通(三)常用注解含义及用法分析总结...

    Spring Boot是目前非常流行的框架,而注解是Spring Boot的核心功能,接下来主要说一说Spring Boot常用注解的含义以及部分注解在项目中的使用方法. @RestControlle ...

  3. swagger注解说明_swagger2常用注解说明

    原文:https://blog.csdn.net/u014231523/article/details/76522486 说明: 1.这里使用的版本:springfox-swagger2(2.4)sp ...

  4. Junit测试常用注解

    Junit常用注解 0x01 摘要 本文简要说下junit里面常用注解的含义和使用,还会总结一些常用的Assert判断语句. 0x02 常用Junit注解 2.1 @Test 用在方法上,定义该方法是 ...

  5. SSM框架之Spring MVC(二)常用注解说明

    一.常用注解 1.1RequestParam 1.1.1  使用说明 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必须 ...

  6. Spring MVC常用注解说明

    2019独角兽企业重金招聘Python工程师标准>>>     使用Spring MVC的注解及其用法和其它相关知识来实现控制器功能. 02     之前在使用Struts2实现MV ...

  7. 40 个 Spring Boot 常用注解

    以下文章来源方志朋的博客,回复"666"获面试宝典 作者 | 谭朝红 链接 | ramostear.com 一.Spring Web MVC 与 Spring Bean 注解 Sp ...

  8. 40 个 SpringBoot 常用注解

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:https://ramostear.com/ 一.Spring Web MVC 与 Spring Bean 注解 Spri ...

  9. SpringBoot+Swagger2常用注解

    场景 SpringBoot+Swagger2实现可视化API文档流程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/936166 ...

最新文章

  1. Windows API入门系列之七 -完善MessageBox
  2. 蓝色药水c语言源代码,蓝色药水4.cpp
  3. 【Python】Autoviz: 一行代码搞定数据集探索并可视化
  4. boost::geometry::srs::transformation用法的测试程序
  5. JS开源框架Stimulus:让web应用在移动端达到原生体验!
  6. 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(五)
  7. 【计算机网络】比较TCP与UDP
  8. 《编码规范和测试方法——C/C++版》作业 ·005——设计一组员工类
  9. Gentoo解决Windows系统txt文本中文乱码问题
  10. github本地库及clone常用命令
  11. 【软件工程】软件工程需求分析——结构化分析
  12. 位图深度 PIL.image.save()保存图片后size变大
  13. 图像识别---Windows下anaconda和yolov5安装配置及简单使用
  14. access h3c交换机光口_h3c光纤交换机_H3C交换机光口设置
  15. Linux驱动学习-平台设备驱动probe函数-20220410
  16. 制作DOS的U盘启动
  17. 计算机安全措施方案,计算机安全应急预案
  18. 全世界研发者,联合起来!
  19. 一.无线电能传输技术简介
  20. java中Class对象详解和类名.class, class.forName(), getClass()区别

热门文章

  1. 更新NVIDIA显卡的CUDA驱动出错,You appear to be running an X server; please exit X before
  2. AI目标分割能力,无需绿幕即可实现快速视频抠图
  3. web架构师知识体系
  4. 域内提权之MS14-068
  5. 电力拖动自动控制系统
  6. QT CREATOR出现no Qt platform plugin问题
  7. 课时12 Linux文件系统挂载管理
  8. 利用MATLAB实现图片切换动画效果详解
  9. 淘宝搜索引擎的缓存机制
  10. MAC 配置AX88179 USB 3.0 to Gigabit Ethernet网络