常用的Spring注解

1. @Controller

  • 被@Controller标记的类实际上就是个SpringMVC Controller对象,它是一个控制器类。
  • 将@Controller标记在某个类上,配合@RequestMapping注解,可以在一个类中定义多个接口,这样使用起来更加灵活。
  • 参考资料:https://blog.csdn.net/Colton_Null/article/details/79187414

2. @ResponseBody

  • 用在控制层(controller层)的方法上
  • @ResponseBody注解的作用是将Controller的方法返回的对象通过适当的转换器转换为指定格式之后,写入到response对象的body区,通常用来返回json或者xml数据。在使用这个注解之后就不会再走视图处理器,而是直接将数据写入输出流中,效果等同于通过response对象输出指定格式的数据。
  • controller方法在使用@RequestMapping之后,返回值通常解析为跳转路径,但是加上@ResponseBody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@ResponseBody后,会直接返回json数据。@ResponseBody将HTTP请求正文插入方法中,使用合适的HttpMessageConverter将请求体写入某个对象。
  • @ResponseBody可以作用在controller的方法上,也可以直接作用在类上,最典型的例子就是@RestController这个注解,它就包含了@ResponseBody注解,和作用在方法上的用处是一样的,只是作用在类上就不需要每个方法都加上这个注解了,减少了代码的冗余。
  • 参考资料:http://www.yuanjingyan.com/article/1643899137
  • @ResponseBody使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用; 参考资料:https://developer.aliyun.com/article/248017

3. @RestController

4. @RequestMapping

  • 被@RequestMapping标记的方***被分发处理器扫描识别,将不同的请求分发到对应的接口上。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。要配置 Web 请求的映射,就需要你用上@RequestMapping 注解
  • controller方法在使用@RequestMapping之后,返回值通常解析为跳转路径,但是加上@ResponseBody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。
  • 参考资料:https://www.oschina.net/translate/using-the-spring-requestmapping-annotation

5. @PostMapping

6. @RequestBody

  • @RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。
  • 参考资料:https://blog.51cto.com/u_3664660/3216992

7. @mapper

  • @mapper是Mybatis的注解,使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。
  • 如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。
  • 如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。
    此时spring是通过识别mapper.xml中的 <mapper namespace="&#40;例如&#41;com&#46;huang&#46;mapper&#46;UserDao"> namespace的值来确定对应的Mapper.class的。
    参考资料:https://blog.csdn.net/qq_34626094/article/details/114582315</mapper>

8. @Component

  • @Component是Spring的基础注解,表示一个 JavaBean 可以被注入到 Spring 容器中(把普通pojo实例化到spring容器中)。
    web服务的三层结构对应的Spring注解有:
  • @Controller 用在表现层,对来自前端的请求进行转发处理与重定向。
  • @Repository 用在持久层,标注 DAO 类,表示这个类可以对数据库进行数据的读取或者写入。
  • @Service 用在业务层,用来处理业务逻辑。
    引入三个注解之后,就实现了将处理前端请求、处理业务逻辑、处理数据库读写这三个基本任务进行了解耦,方便程序的编写和项目维护。
    参考资料:https://blog.csdn.net/khxu666/article/details/82903108
#Spring#
全部评论
这些资料写的是非常nice,感谢感谢
点赞 回复 分享
发布于 2022-08-26 20:01 陕西

相关推荐

真tmd的恶心,1.面试开始先说我讲简历讲得不好,要怎样讲怎样讲,先讲背景,再讲技术,然后再讲提升多少多少,一顿说教。2.接着讲项目,我先把背景讲完,开始讲重点,面试官立即打断说讲一下重点,无语。3.接着聊到了项目的对比学习的正样本采样,说我正样本采样是错的,我解释了十几分钟,还是说我错的,我在上一家实习用这个方法能work,并经过市场的检验,并且是顶会论文的复现,再怎么不对也不可能是错的。4.面试官,说都没说面试结束就退出会议,把面试者晾在会议里面,丝毫不尊重面试者难受的点:1.一开始是讲得不好是欣然接受的,毕竟是学习。2.我按照面试官的要求,先讲背景,再讲技术。当我讲完背景再讲技术的时候(甚至已经开始蹦出了几个技术名词),凭什么打断我说讲重点,是不能听出人家重点开始了?这也能理解,每个人都有犯错,我也没放心上。3.我自己做过的项目,我了解得肯定比他多,他这样贬低我做过的项目,说我的工作是错误的,作为一个技术人员,我是完全不能接受的,因此我就和他解释,但无论怎么解释都说我错。凭什么,作为面试官自己不了解相关技术,别人用这个方式work,凭什么还认为这个方法是错的,不接受面试者的解释。4.这个无可厚非,作为面试官,不打招呼就退出会议,把面试者晾着,本身就是有问题。综上所述,我现在不觉得第一第二点也是我的问题,面试官有很大的问题,就是专门恶心人的,总结面试官说教,不尊重面试者,打击面试者,不接受好的面试者,技术一般的守旧固执分子。有这种人部门有这种人怎么发展啊。最后去查了一下,岗位关闭了。也有可能是招到人了来恶心人的,但是也很cs
牛客20646354...:招黑奴啊,算法工程师一天200?
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务