Spring 中的 18 个注解,你会几个?.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Spring 中的 18 个注解,你会几个? 对于 Spring 框架而言,注解是一种非常重要的机制,它能够简化代码、提高开发效率和代码可读性。本文将对 Spring 中的 18 个常用注解进行详细解释,帮助读者更好地理解和使用这些注解。 1. @Controller @Controller 注解用于标识一个类是 Spring MVC 控制器处理器,用来创建处理 HTTP 请求的对象。在 Spring MVC 中,控制器是处理用户请求的入口点。 2. @RestController @RestController 注解是 Spring 4 之后加入的注解,用于标识一个类是一个 RESTful 风格的控制器。它的作用相当于@Controller 加上@ResponseBody,表示该控制器返回的数据将默认以 JSON 格式返回。 3. @Service @Service 注解用于标注业务层组件,表明这个类是一个服务类。通常情况下,服务类会被注入到 Spring 配置中,以便在其他组件中使用。 4. @Autowired @Autowired 注解用于装配 Bean,都可以写在字段上、Setter 方法上或构造函数上。默认情况下,Autowired 需要依赖对象必须存在,如果要允许 null 值,可以设置其 required 属性为 false。 5. @RequestMapping @RequestMapping 注解用于提供初步的请求映射信息,相对于 Web 应用的根目录。在类定义处使用时,提供了初步的请求映射信息;在方法定义处使用时,提供了进一步的细分映射信息,相对于类定义处的 URL。 6. @RequestParam @RequestParam 注解用于将请求参数区数据映射到功能处理方法的参数上。例如,@RequestParam("id") 可以将请求参数 id 的值映射到方法参数中。 7. @ModelAttribute @ModelAttribute 注解有两种使用地方: (1)标记在方法上:在每一个@RequestMapping 标注的方法前执行,如果有返回值,则自动将该返回值加入到 ModelMap 中。 (2)标记在方法的参数上:将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入 ModelMap 中。 8. @Cacheable @Cacheable 注解用于标记缓存查询,能够将查询结果缓存在缓存中,以便下次查询时直接从缓存中获取结果。 9. @CacheEvict @CacheEvict 注解用于标记要清空缓存的方法,当这个方法被调用后,即会清空缓存。 10. @Resource @Resource 注解的作用相当于@Autowired,只不过@Autowired 按照类型自动注入,而@Resource 默认按照名称自动注入。@Resource 有两个重要的属性是 name 和 type,Spring 将@Resource 注解的 name 属性解析为 Bean 的名字,而 type 属性则解析为 Bean 的类型。 11. @RequestMapping(Method) @RequestMapping 注解也可以用于方法上,以提供进一步的细分映射信息,相对于类定义处的 URL。 12. @DateTimeFormat @DateTimeFormat 注解用于将字符串类型的日期时间参数自动转换为 Date 对象。 13. @NumberFormat @NumberFormat 注解用于将字符串类型的数字参数自动转换为 Number 对象。 14. @InitBinder @InitBinder 注解用于标识一个方法,以便在 WebDataBinder 初始化时调用该方法,以便对数据绑定进行自定义设置。 15. @ExceptionHandler @ExceptionHandler 注解用于标识一个方法,以便在控制器中捕捉并处理异常。 16. @ResponseStatus @ResponseStatus 注解用于标识一个方法,以便在控制器中返回特定的 HTTP 状态码。 17. @ResponseBody @ResponseBody 注解用于标识一个方法,以便将其返回值直接写入到 HTTP Response 体中。 18. @RequestBody @RequestBody 注解用于标识一个方法,以便将 HTTP Request 体中的数据自动转换为方法参数对象。 这 18 个注解是 Spring 框架中非常重要的组成部分,正确地使用它们能够提高开发效率和代码可读性。
剩余7页未读,继续阅读
- 粉丝: 2050
- 资源: 4206
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLO-yolo资源
- 适用于 Java 项目的 Squash 客户端库 .zip
- 适用于 Java 的 Chef 食谱.zip
- Simulink仿真快速入门与实践基础教程
- js-leetcode题解之179-largest-number.js
- js-leetcode题解之174-dungeon-game.js
- Matlab工具箱使用与实践基础教程
- js-leetcode题解之173-binary-search-tree-iterator.js
- js-leetcode题解之172-factorial-trailing-zeroes.js
- js-leetcode题解之171-excel-sheet-column-number.js