首页 > 其他分享 >SpringBoot常用注解

SpringBoot常用注解

时间:2024-06-02 19:28:35浏览次数:19  
标签:常用 SpringBoot RequestParam organizationId value String 注解 请求

1、bean相关注解

注解名作用
@Component将类交给SpringBoot管理
@Repository放在dao层
@Service放在service层,即业务服务层
@Controller放在控制层,即handler层
@RestController@Response和@Controller的组合注解,返回的是JSON数据
@Configuration声明一个类为配置类,常和Bean、Scope注解组合使用
@SpringBootConfiguration标注在类上,说明这个类是SpringBoot的主配置类,SpringBoot要运行这 个类的main方法来启动Spring应用
@SpringBootApplicationSpring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解
@EnableAutoConfiguration具有打开自动配置的功能,也可以关闭某个自动配置的选项。
@ComponentScan用于Spring组件扫描。
@Autowired由Spring提供,只按照byType自动注入
@Resource由J2EE提供,默认按照byName自动注入
@Bean等价于bean标签,一般标注在方法上,默认为单例模式
@Scope声明该bean的作用域,有singleton、prototype、request、session

注意:@SpringBootApplication,它也是启动类使用的注解,主要包含了 3 个 注解:
@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

2、配置启动相关注解

注解名作用
@SpringBootApplicationSpring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解
@SpringBootConfiguration标注在类上,说明这个类是SpringBoot的主配置类,SpringBoot要运行这 个类的main方法来启动Spring应用
@ComponentScan用于Spring组件扫描。
@EnableAutoConfiguration具有打开自动配置的功能,也可以关闭某个自动配置的选项。
@Configuration声明一个类为配置类,常和Bean、Scope注解组合使用
@Conditional根据代码中设置的条件装载不同 的 bean,也是SpringBoot实现自动配置的基石。
@ConditionOnBean配置了某个特定的Bean时条件为真。
@ConditionalOnMissingBean没有配置特定的Bean时条件为真。

3、Http请求相关注解

注解名作用
@RequestMapping映射及请求的路径
@GetMapping等价于 @RequestMapping(value=“/test”,method=RequestMethod.GET)
@PostMapping等价于 @RequestMapping(value=“/test”,method=RequestMethod.POST)
@DeleteMappingRestful风格的删除请求注解

注意:@RequestMappping

1、 value、method value: 指定请求的实际地址,指定的地址可以是URI Template模式; method:指定请求的method类型:(HTTP协议规定)GET、POST、PUT、DELETE、HEAD、OPTIONS、 PATCH等;

2、 consumes、produces consumes:指定接收的处理请求的提交内容类型(Content-Type); produces: 指定返回的内容类型,仅当request请求头中包含该指定类型才返回, Content Type:text/html; charset=UTF-8;

4、参数绑定相关注解

注解名作用
@RequestParam用在方法的参数前面,获取请求中表单类型的key=value格式的数据。
@PathVariable用于获取请求路径中的参数。
@RequestBody获取请求 body 中的数据,常用于搭配 @PostMapping 请求来提交对象数据.
@ResponseBody该方法的返回结果直接写入 HTTP response body 中,格式为 json
@Param为SQL语句中参数赋值而服务的,参数名和sql语句不同时使用

@Param:

public User selectUser(@Param("userName") String name,@Param("password") String pwd);

@RequestParam:

@RequestParam注解是作用在controller层上的,它可以将前端发送的请求参数绑定到controller层的方法参数上。根据真是业务需求有时方法参数并不需要传递该参数,则可以通过使用该注解来达到这个目的。例如:

@ApiOperation(value = "班级列表")
@GetMapping("/class/list")
public Message.DataRespone<UOrganizationClass> organizationClassList(
        //不写required 查看其默认是否为true
        @RequestParam(value = "organizationId") Integer organizationId,
        int schoolId,
        @RequestParam(required = true, defaultValue = "") String className,
        @RequestParam(required = false, defaultValue = "") String openYear,
        PageVo pageVo) {
    SSystemUser systemUser = getUserInfo();
    //organizationId = getCanCtrlOrganizationId(organizationId);
    //如果没有传organizationId就从token中获取organizationId
    if (organizationId == null || "".equals(organizationId)) {
        organizationId = systemUser.getOrganizationId();
    }
    int dataLevel = getUserDataLevel();
    PageInfo<UOrganizationClass> result = organizationService.listClass(systemUser.getId(), organizationId, schoolId, dataLevel, className, openYear, pageVo.getPageNumber(), pageVo.getPageCount());
    return Message.Success.createWithPageInfo(result);
}

在文件上传时也可以使用。

5、读取配置相关注解

注解名作用
@Value在任意 Spring 管理的 Bean 中通过这个注解获取任何来源配置的属性值
@ConfigurationProperties类似@Value注解,但这个里面可以自定义前缀等信息
@PropertySource指定读取自定义的配置文件,参数填写路径。

@PropertySource注解:
用于指定资源文件读取的位置,它不仅能读取properties文件,也能读取xml文件,并且通过YAML解析器,配合自定义PropertySourceFactory实现解析YAML文件。spring会使用默认的DefaultPropertySourceFactory解析。

@Configuration
@ComponentScan(basePackages = "propertysourcedemo")
//这次使用file协议的url路径来解析
@PropertySource(value = "file:///D:/spring-high-level-study/src/main/resources/daoconfig/datasource-config.properties")
public class SpringConfig {
 
    //通过SPEL表达式注入属性
    @Value("${druid.driverClassName}")
    private String driverClassName;
 
    @Value("${druid.url}")
    private String url;
 
    @Value("${druid.username}")
    private String username;
 
    @Value("${druid.password}")
    private String password;
 
 
 
    //注册Druid数据源连接池
    @Bean
    public DruidDataSource druidDataSource(){
        System.out.println("driverClassName====> " + driverClassName);
        System.out.println("url====> " + url);
        System.out.println("username====> " + username);
        System.out.println("username====> " + username);
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driverClassName);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        return druidDataSource;
    }
}

6、JSON相关注解

注解名作用
@RequestBody主要用来接收前端传递给后端的json字符串中的数据(请求体中的数据);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
@ResponseBody返回数据是JSON数据

7、校验相关注解

注解名作用
@NotBlank被注释的字符串非 null,并且必须包含一个非空白字符
@Email被注释的元素必须是 Email 格式。
@Pattern(regex=,flag=)注释的元素必须符合指定的正则表达式
@Validjdk的注解,数据校验,定义在实体类中的属性上,接口类中的接收数据参数中添加之后实体类会开启一个校验的功能。如果在实体类中嵌套的实体类属性时,必须添加,否则校验无法生效
@Validatedspring的注解,比@Valid强大,数据异常会统一抛出异常,方便异常中心统一处理,判断一个输入参数是否合法

标签:常用,SpringBoot,RequestParam,organizationId,value,String,注解,请求
From: https://blog.csdn.net/Block_yang/article/details/139278520

相关文章

  • MVC中几种常用ActionResult
    一、定义MVC中ActionResult是Action的返回结果。ActionResult有多个派生类,每个子类功能均不同,并不是所有的子类都需要返回视图View,有些直接返回流,有些返回字符串等。ActionResult是一个抽象类,它定义了唯一的ExecuteResult方法,参数为一个ControllerContext,下面为您介绍MVC中的Act......
  • SpringBoot基于OpenAPI3的接口文档管理快速集成和使用
    你好,这里是codetrend专栏“SpringCloud2023实战”。本文主要简单介绍SpringCloud2023中进行接口文档管理,方便前后端开发和文档维护。文档管理工具基于开源的knife4j封装的openapi3。前言OpenAPI3.0(前身为Swagger)是一种RESTfulAPI文档规范。OpenAPI3.0规范是一种易于阅读和理......
  • 【swagger】@ApiImplicitParam注解Integer类型required=true时不能提交、@ApiImplicit
    文章目录一、问题描述二、问题原因三、解决方法3.1、修改dataType=int3.2、修改dataType=Long3.3、修改dataType类型为String类型3.4、当dataType类型为Integer时,删除required=true以下内容基于swagger2.9.2进行讲解<!--swagger2--><dependency> <groupId>io.sp......
  • 如何在Spring中使用@Query注解?
    在Spring中,@Query注解是一种非常强大的工具,它允许你在Repository接口中直接定义查询语句。使用@Query注解,你可以执行JPQL(JavaPersistenceQueryLanguage)查询或者原生SQL查询,从而实现复杂的数据库查询而无需编写自定义的数据访问代码。使用@Query注解的基......
  • SpringMvc与SpringBoot有什么不同?
    SpringMVC和SpringBoot是Spring生态系统中的两个不同的项目,它们定位不同,但可以协同工作。这里是它们之间主要的区别。SpringMVC(SpringWebMVC)定位:SpringMVC是一个构建Web应用程序的模块。它是Spring框架的一部分,主要用于开发Model-View-Controller......
  • @RequestMapping注解有哪些属性?
    在SpringFramework中,@RequestMapping注解用于将HTTP请求映射到MVC和REST控制器的处理方法上。它是SpringMVC中最基本的注解之一,可以应用在类级别或方法级别。@RequestMapping注解拥有多个属性,以下是其中的一些常用属性及其解释:value/path:类型:String[]描......
  • JS-11-es6常用知识-Promise(6K字超级详解!!)
    文章目录1回调地狱2 Promise函数基本用法3 Promise函数实现多层回调 4Promise传参5 Promise错误处理5.1两种错误处理方式5.2catch捕获错误5.3多层异步种使用catch6使用Promise的优势1回调地狱1)为什么要有promise?  解决(回调地狱)的问题 2)什......
  • Springboot计算机毕业设计一次性环保餐具销售系统小程序【附源码】开题+论文+mysql+程
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着外卖和快餐文化的快速发展,一次性餐具的使用量急剧增加,给环境带来了沉重的负担。传统的一次性餐具多为塑料制品,难以降解,对环境造成了长期污染。因......
  • Springboot计算机毕业设计药品外送小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在当今快节奏的生活环境中,人们对便捷性的需求日益增长。特别是在医疗健康领域,当患者因疾病需要药品时,能够迅速获得所需药物显得至关重要。随着互联网......
  • springboot基于Android的记录生活APP
    摘要本文拟采用Android平台进行开发,使用java技术和Springboot搭建系统框架,后台使用MySQL数据库进行信息管理,设计开发的记录生活APP。通过调研和分析,系统拥有管理员和用户两个角色,主要具备登录注册,个人信息修改,用户管理,运动项目管理,食物类型管理,新闻资讯管理,食品分析管理,套......