前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第五节:SpringBoot常用注解介绍

第五节:SpringBoot常用注解介绍

作者头像
入门笔记
发布2022-06-02 18:44:28
5040
发布2022-06-02 18:44:28
举报
文章被收录于专栏:入门小站入门小站

启动类上的注解

@SpringBootApplication这个注解会在SpringBoot启动类上。这个注解实际上包含3个注解@SpringBootConfiguration,@EnableAutoConfiguration@ComponentScan

  • @SpringBootConfiguration继承@Configuration两个注解的功能一样。也就是标注当前类是配置类。会将当前类中声明的一个或者多个@Bean注解标记的方法的实例注入到Spring容器中。实例名就是对象名。
  • @EnableAutoConfigurationSpringBoot的自动配置注解。可以将符合条件的@Configuration加载到SpringBoot,并生成对应配置类的Bean,加载到Srping容器。
  • @ComponentScan扫描当前包和子包下被@Component,@Controller,@Service,@Respository注解的类并注入到Spring容器。

前端控制器

@Controller

@Controller注解在类上,表示这是一个控制层bean。

@RestController

@RestController注解在类上,表示这是一个控制层bean,相当于@ResponseBody和·@Controller的组合注解。使用此注解无法返回jsp,html页面,InternalResourceViewResolver不起作用。返回的内容就是return的内容。

@RequestMapping

@RequestMapping用来处理请求地址映射的注解。可以声明在类或者方法上。用在类上表示所有的请求的父路径。

@RequestMapping注解有6个属性

value,method
  • value 请求的方法
  • method 请求的类型,GET,POST,PUT,DELETE
consumes,produces
  • consumes 指定可以处理请求数据的类型。如:application/jsontext/html
  • produces 指定返回数据的类型。只有当request请求头Accept字段中包含此类型,才返回数据
params,headers
  • params 指定request中包含某些参数值,才处理。
  • headers 指定request请求头包含header值,才处理。
@RequestBody@ResponseBody
@RequestBody

会将request请求头中的body转换成string字符串类型。这个注解会出现在请求方法的参数上

@ResponseBody

会将Map对象转化成json格式输出到HTTP中,这个注解会出现在请求的方法上。

@PathVariable,@RequestParam,@ModelAttribute,@RequestAttribute
@PathVariable

@RequestMapping(value = "/index7/{id}",method = RequestMethod.GET)从请求的URI中提取id。

@RequestParam

从请求头中获取参数

@RequestAttribute ,@ModelAttribute

@RequestAttribute注解取的参数是项目中解析出来的。不是从前端传过来的。可以通过ModeAttributeHandlerInterceptor中预存。

@ModelAttribute

  • 用在方法参数注解上,可以接收前端参数,但是要求数据格式是x-www-form-urlencoded
  • 用在方法上可以预存属性值。
@GetMapping

GetMapping注解已经默认封装了@RequestMapping(method = RequestMethod.GET)

@PostMapping

PostMapping注解已经默认封装了@RequestMapping(method = RequestMethod.POST)

@GetMapping@PostMapping要配合@RestController使用,否则会报404。

服务层

@Service注解在类上,标注这是一个服务层

持久层

@Repository 注解于类上,表示于持久层

配置

@Component

它是一个通用注解,,不属于@Controller@Service的组件,我们就可以用@Componment。它可以标注这个类被Spring容器管理。

@Configuration

@Configuration标注在类上,配置spring容器(应用上下文)。相当于把该类作为spring的xml配置文件中的<beans>@Configuration注解的类中,使用@Bean注解标注的方法,返回的类型都会直接注册为bean@Configuration注解基于@Component,所以他们的功能是一样的,但是意义有所不同。

@Bean

该注解在该类的方法上,AnnotationConfigApplicationContext将配置类中标注了@Bean的方法的返回值识别为Spring Bean,并注册到容器中,归入IoC容器管理。

依赖注入

@Autowired

默认是按照类型注入的(属于Sping的注解),默认情况下要求被依赖的对象必须存在,如果要允许null值,可以设置它的required属性为false(@Autowired(required=false) )

@Resource

默认根据名称进行依赖注入(属于J2EE的注解),默认情况下根据名称注入,名称可以通过name属性进行指定,如果没有指定name属性,默认取字段名进行安装名称查找.

@Qualifier

这个是Spring中的一个注解,如果有多个类型相同的Bean,就可以使用@Qualifier依据名字区分注入。

@Value

通过@Value将配置文件中定义的值注入到Bean中

系列文章

第一节:创建SpringBoot项目并运行HelloWorld

第二节:SpingBoot单元测试

第三节:SpringBoot中web项目推荐目录结构

第四节:SpringBoot中web模版数据渲染展示

本小结源码地址:

  • GitHub:https://github.com/mifunc/springboot/tree/main/lession5
  • Gitee:https://gitee.com/rumenz/springboot/tree/master/lession5
  • https://rumenz.com/rumenbiji/springboot-annotation.html

介绍

  • 我的博客 https://rumenz.com/
  • 我的工具箱 https://tooltt.com/
  • 微信公众号:【入门小站】
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动类上的注解
  • 前端控制器
    • @Controller
      • @RestController
        • @RequestMapping
          • value,method
          • consumes,produces
          • params,headers
        • @RequestBody和@ResponseBody
          • @RequestBody
        • @ResponseBody
          • @PathVariable,@RequestParam,@ModelAttribute,@RequestAttribute
            • @PathVariable
            • @RequestParam
            • @RequestAttribute ,@ModelAttribute
          • @GetMapping
            • @PostMapping
            • 服务层
              • @Service注解在类上,标注这是一个服务层
              • 持久层
                • @Repository 注解于类上,表示于持久层
                • 配置
                  • @Component
                    • @Configuration
                      • @Bean
                      • 依赖注入
                        • @Autowired
                          • @Resource
                            • @Qualifier
                              • @Value
                              相关产品与服务
                              容器服务
                              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档