博客
关于我
SpringBoot中常用注解
阅读量:362 次
发布时间:2019-03-04

本文共 1447 字,大约阅读时间需要 4 分钟。

springboot本质上就是spring,只不过它省去了spring的繁杂的xml配置问题,给开发者更方便搭建项目的方式。

springboot的常用注解

  • @SpringBootApplication
    这是一个注解组合,组合里主要有这三个重要的注解:用在springboot的启动类上(替代@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan)

@SpringBootConfiguration: 继承@Configuration注解,声明在类上,表示这是一个IOC容器,相当于spring的配置文件。 IOC容器的配置类一般与 @Bean 注解配合使用,用 @Configuration 注解类等价与 XML 中配置 beans,用@Bean 注解方法等价于 XML 中配置 bean。

@EnableAutoConfiguration: (这个很重要,springboot开启自动配置,会自动加载配置)能够将所有符合自动配置条件的bena加载到spring容器中。
@ComponentScan: 会将当前包和其子包所有被@Component,@Controller,@Service,@Repository等注解标记的类并纳入到spring容器中进行管理。

组件注册

  • @ComponentScan,扫描启动类目录下的所有符合条件的Bean,并注入容器
  • @Controller,用于标注控制层组件
  • @RestController: Conroller层注解,@ResponseBody和@Controller的合集

前后端分离: controoler层方法返回的json数据时使用**@RestController**

前后端不分离:controller层使用**@Controller**

  • @Repository,用于标注数据访问组件,即DAO组件
  • @Service: service业务层所使用的注解
  • @Bean: 用在方法上,产生一个bean,交给spring容器进行管理。
  • @Configuration: spring的容器,相当于spring的xml配置文件,一般用在主类上,和**@bean**一起使用。
  • @AutoWired: 用来将spring容器中的实例bean注入到类中,常用在类中属性上,通过type类型注入。
  • @Resource: 和上面的注解一样,都是用来注入实例bean到类中的,只不过这个是通过name类型注入。
  • **@RequestMapping:**是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。(一般在controller层中使用)
  • @GetMapping、@PostMapping 用法和上面类似,都是请求地址映射注解。
@RequestBody和@RequestParam

两个注解都是用于方法中接收参数使用的,两者也有一定的区别

  • @RequestBody: 可以直接将前台页面中的参数封装成实体类中的数据传输给后台。
  • @RequestParam: 用在方法的参数前面。相当于 request.getParameter();

用在方法的参数前面。@RequestParam String a =request.getParameter(“a”)。

  • @PathVariable: 获取请求地址栏上占位符的值
    在这里插入图片描述

转载地址:http://vfzg.baihongyu.com/

你可能感兴趣的文章
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>
No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
查看>>
No module named 'crispy_forms'等使用pycharm开发
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
查看>>
No new migrations found. Your system is up-to-date.
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>
No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
查看>>
No resource identifier found for attribute 'srcCompat' in package的解决办法
查看>>
no session found for current thread
查看>>
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
查看>>
NO.23 ZenTaoPHP目录结构
查看>>
no1
查看>>
NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
查看>>