首页 > 作文

SpringBoot常用注解详细整理

更新时间:2023-04-04 01:24:23 阅读: 评论:0

目录
前言一、@springbootapplication二、@bean三、@autowired四、component家族五、@restcontroller六、@scope七、@configuration八、@requtmapping八、@getmapping九、@configuration十、@postmapping十一、@putmapping十二、@deletemapping十三、@parhvariable和@requestparam十四、@requestbody十五、读取配置信息十六、@qualifier十七、@mapperscan十八、@crossorigin十九、@controlleradvice二十、资源导入注解二十一、@transactional总结

前言

spring boot常用注解整理

提示:以下是本篇文章正文内容,下面案例可供参考

一、@springbootapplication

此注解是spring boot项目的基石,创建springboot项目的application时会默认加上

@springbootapplicationpublic class springcurityapplication{    public static void main(strings[] args){        springapplication.run(springcurityapplication,args);    }}

@springbootapplication 看作@configuration,@enableautoconfiguration,@componentscan 注解的集合

@enableautoconfiguration:启用springboot的自动配置机制

@componentscan:扫描被@component /@rvice/@controller注解的bean,注解默认会扫描该类所在的包下所有类

@configuration:允许在spring上下文中注册额外的bean或导入其他配置类

二、@bean

bean对象注册spring ioc容器与使用bean对象是整个spring框架的重点,其中@bean就是一个将方法作为spring bean对象注册的一种方式

package com.edu.fruit; //定义一个接口public interface fruit<t>{    //没有方法} /**定义两个子类*/package com.edu.fruit;@configuration public class apple implements fruit<integer>{//将apple类约束为integer类型}package com.edu.fruit;@configurationpublic class ginng implements fruit<string>{//将ginng 类约束为string类型}/**业务逻辑类*/package com.edu.rvice;@configuratio企业年度工作总结npublic class fruitrvice {@autowiredprivate apple apple;@autowiredprivate ginng ginng;//定义一个产生bean的方法@bean(name="getapple")public fruit<?> getapple(){system.out.println(apple.getclass().getname().hashcode);  system.out.println(ginng.getclass().getname().hashcode);return new apple();}}/**测试类*/@runwith(blockjunit4classrunner.class)public class config {    public config(){        super("classpath:spring-fruit.xml");    }    @test    public void test(){        super.getbean("getapple");//这个bean从哪来,        //从上面的@bean下面的方法中返回的是一个apple类实例对象    }}

三、@autowired

@autowired自动注入注解,最常用的一种注解将对象自动导入到类中,注解自动装配bean的类

四、component家族

@component:通用注解,当不知道bean在哪一层时,可以使用@component注解标注。
@repository: 对应持久层—dao层的注解,用于操作数据库相关
@rvice: 对应服务层的注解,用来连接dao层做逻辑处理
@controller:对应spring mvc控制层,主要接收用户请求并调用rvice返回给前端页面

五、@restcontroller

@restcontroller注解是@controller注解和@responbody注解的合集,用来返回json格式给页面(带rest格式的就是返回的json文本)

六、@scope

声明spring bean的作用域

@scope("singleton")public person personsingleton(){    return new person();}

spring bean的四种作用域:singleton,prototype,request,ssion

七、@configuration

一般声明配置类,使用@component或者@configuration

@configurantionpublic class appconfig{    @bean    public transferrvice transferrvice(){        return new transferrviceimpl();    }}

八、@requtmapping

@requtmapping是处理http请求的最通用注解

@requestmapping("/urs")public responentity<list<ur>> getallurs(){    return urrepository.findall();}

八、@getmapping

一般声明配置类,使用@component或者@configuration

九、@configuration

@getmapping 就等价于@requestmapping(value=”/urs”,method =requtmethod.get)

即使用@getmapping就相当用接收get方法了

@getmapping("/urs")public responentity<list<ur>> getallurs(){    return urrepository.findall();}

十、@postmapping

@postmapping 就等价于@requestmapping(value=”/urs”,method =requtmethod.post)

即使用@postmapping就相当用接收post方法了

@postmapping("/urs")public responentity<list<ur>> getallurs(){    return urrepository.findall();}

十一、@putmapping

@putmapping(“/urs/{urid}”)等价于@requestmapping(value = “/urs/{urid}”,method = requestmethod.put)

@putmapping("/urs/{urid}")public responentity<ur> updateur(@pathvariable (value ="urid")long urid, @valid @requestbody urupdaterequest urupdaterequest){...}

十二、@deletemapping

@deletemapping(“/urs/{urid}”)等价于@requestmapping(value =”/urs/{urid}”,method = requestmethod.delete)

@deletemapping("/urs/{urid}")public responentity deleteur(@pathvariable(value = "urid) long urid){...}

十三、@parhvariable和@requestparam

@pathvariable 用于获取路径参数, @requestparam用于获取查询参数

@getmapping("/urs/{urid}/teachers")public list<teacher> geturrelatedteachers(@pathvariable("urid") long urid,@requestparam(value = "type",required = fal) string type){...}

其中@pathvariable是获取请求中的{urid}值,@requestpara长江流经几个省m则是url读取请求中type的值

比如我们url请求中/urs/{123456}/teachers?type=chine 则我们在controller获取到的就是urid = 123456 , type = chine

另在@requestparam中 value=“参数名” required = “true/fal”(true表示参数不允许不存在,fal表示参数允许不存在) defaultvalue=”” 设置defaultvalue时默认required为fal。

十四、@requestbody

用于读取request请求的body部分,且content-type为application/json格式数据,接收到数据后会自动将数据绑定在java对象上,系统会使用httpmessageconverter来讲请求的body中的json字符串转换为java对象

@postmapping("/sing-up")public responentity signup(@requtbody @valid urregisterrequest urregisterrequest){    urrvice.save(urregisterrequest);    return responentity.ok().build()'}

这就是典型的requestbody在post请求里进行传输数据当后端controller接收到json格式的数据后,直接就会生成java对象映射到urregisterrequest类上,这样就可以直接将urregisterrequest对象进行存储。顺便说一下@valid注解是用

来验证数据格式是否符合要求,如果符合要求则通过,不符合要求,提示注解中message信息

十五、读取配置信息

读取application.yml的注解

wuhan2020: 武汉加油!中国加油!my-profile:  name: name  email: xxxx@qq.comlibrary:  location: dalian  books:    - name: name1      description: description1    - name: name2      description: description2    - name: name3      description: description3

1.@value

使用@value(“${property}”)读取简单的配置信息

@value("${wuhan2020}")string wuhan2020;

2.@configurationproperties

通过@configurationproperties读取配置信息并与bean绑定

@component@configurationproperties(prefix = "library")class libraryproperties{    @notempty    private string location;    private list<book> books;    @data    @tostring    static class book{        string name;        string description;    }}

十六、@qualifier

当有多个同一类型的bean时,可以用@qualifier(“name”)来指定。与@autowired配合使用。@qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者,具体使用方式如下:

@autowired @qualifier(value = “demoinforvice”) private demoinforvice demoinforvice;

十七、@mapperscan

spring-boot支持mybatis组件的一个注解,通过此注解指定mybatis接口类的路径,即可完成对mybatis接口的扫描。

它和@mapper注解是一样的作用,不同的地方是扫描入口不一样。@mapper需要加在每一个mapper接口类上面。所以大多数情况下,都是在规划好工程目录之后,通过@mapperscan注解配置路径完成mapper接口的注入。

添加mybatis沉淀杂质相应组建依赖之后。就可以使用该注解。

十八、@crossorigin

@crossorigin(origins = “”, maxage = 1000) 这个注解主要是为了解决跨域访问的问题。这个注解可以为整个controller配置启用跨域,也可以在方法级别启用。

十九、@controlleradvice

@controlleradvice 和 @restcontrolleradvice:通常和@exceptionhandler、@initbinder、@modelattribute一起配合使用。

@controlleradvice 和 @exceptionhandler 配合完成统一异常拦截处理。

@restcontrolleradvice 是 @controlleradvice 和 @responbody的合集,可以将异常以json的格式返回数据。

如下面对数据异常返回的统一处理。

二十、资源导入日薄西山的薄什么意思注解

@importresource @import @propertysource 这三个注解都是用来导入自定义的一些配置文件。

@importresource(locations={}) 导入其他xml配置文件,需要标准在主配置类上。

导入property的配置文件 @propertysource指定文件路径,这个相当于使用spring的标签来完成配置项的引入。

@import注解是一个可以将普通类导入到spring容器中做管理

二十一、@transactional

通过这个注解可以声明事务,可以添加在类上或者方法上。

在spring boot中 不用再单独配置事务管理,一般情况是我们会在rvcie层添加了事务注解,即可开启事务。要注意的是,事务的开启只能在public 方法上。并且主要事务切面的回滚条件。正常我们配置rollbackfor exception时溏心风暴插曲 ,如果在方法

里捕获了异常就会导致事务切面配置的失效。

总结

到此这篇关于springboot常用注解详细整理的文章就介绍到这了,更多相关springboot常用注解内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 01:24:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/cfe709b261d3c07bc5f2b3ec9693027f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:SpringBoot常用注解详细整理.doc

本文 PDF 下载地址:SpringBoot常用注解详细整理.pdf

标签:注解   方法   对象   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图