常用的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 陕西

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 4 评论
分享
牛客网
牛客企业服务