文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring Boot 常用注解汇总

2023-08-25 15:31

关注

SpringBoot最核心的注解,用于SpringBoot的主类,标识这是一个 SpringBoot 应用,用来开启 Spring Boot 的各项能力。

@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般一起使用,所以干脆整合成了一个统一的注解@SpringBootApplication。

@SpringBootConfiguration 注解

继承@Configuration注解,主要用于加载配置文件,二者功能致,标注当前类为配置类, 将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,且实例名为方法名。


@EnableAutoConfiguration 注解

开启自动配置功能,帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。智能的自动配置功效借助于Spring框架原有的一个工具类:SpringFactoriesLoader的支持。


@ComponentScan 注解

主要用于组件扫描自动装配,自动扫描并加载符合条件的组件或bean定义,最终将这些bean定义加载到容器中。可以通过basePackages等属性指定@ComponentScan自动扫描的范围,若不指定,则Spring框架实现默认从声明@ComponentScan所在类的package进行扫描,SpringBoot的启动类最好放在root package下。


@Configuration

用于定义配置类,指出该类是 Bean 配置的信息源,相当于传统的xml配置文件,一般加在主类上。如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。


@ComponentScan

组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文。

@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。


@Controller

控制器,处理http请求。后面[注入bean相关注解]会细说


@RestController 复合注解

@RestController注解= @ResponseBody+@Controller,效果是将方法返回的对象直接在浏览器上展示成json格式。


@RequestBody

通过HttpMessageConverter读取Request Body并反序列化为Object(泛指)对象

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


@ResponseBody


@RequestMapping

将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上,提供路由信息,负责URL到Controller中的具体函数的映射。


@GetMapping

将HTTP get请求映射到特定处理程序的方法注解


@PostMapping

将HTTP post请求映射到特定处理程序的方法注解


@RequestMapping 和 @GetMapping @PostMapping 区别


@PathVariable

获取url中的数据


@Value

注入 application.properties 或 application.yml 配置的属性的值;


@RequestParam

获取请求参数的值


@RequestHeader

把Request请求header部分的值绑定到方法的参数上


@CookieValue

把Request header中关于cookie的值绑定到方法的参数上


@Bean

产生一个bean的方法,交给Spring容器管理。支持别名@Bean(“xx-name”)


@Component

把普通pojo实例化到spring容器,虽然有了@Autowired,但是我们还是要写一堆bean的配置文件,相当麻烦,而@Component就是告诉spring,我是pojo类,把我注册到容器中吧,spring会自动提取相关信息。那么我们就不用写麻烦的xml配置文件了

注:@Component是最通用的 Spring 注解。 在类路径扫描期间找到装饰有@Component的 Java 类,并在上下文中注册为 Bean。也泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),使用@Component来标注这个类。


@controller

用于标注控制层。这里控制层里面的每个方法,都可以去调用@Service标识的类(业务逻辑层),
@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层/持久层)。


@Service

注入dao,用于标注服务层(业务逻辑层),主要用来进行业务的逻辑处理


@Repository

实现dao访问,用于标注数据访问层(Dao层/持久层),也可以说用于标注数据访问组件,即DAO组件.


@Scope作用域注解

value    singleton   表示该bean是单例的。(默认)    prototype   表示该bean是多例的,即每次使用该bean时都会新建一个对象。    request     在一次http请求中,一个bean对应一个实例。    session     在一个httpSession中,一个bean对应一个实例。    proxyMode    DEFAULT         不使用代理。(默认)    NO              不使用代理,等价于DEFAULT。    INTERFACES      使用基于接口的代理(jdk dynamic proxy)。    TARGET_CLASS    使用基于类的代理(cglib)。

@Entity

实体类注解
@Table(name =“数据库表名”),这个注解也注释在实体类上,对应数据库中相应的表。
@Id、@Column注解用于标注实体类中的字段,pk字段标注为@Id,其余@Column。


@Autowired

自动导入
@Autowired注解作用在构造函数、方法、方法参数、类字段以及注解上
@Autowired注解可以实现Bean的自动注入


@Qualifier

当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用


@PropertySource注解

引入单个properties文件:

@PropertySource(value = {"classpath : xxxx/xxx.properties"})

引入多个properties文件:

@PropertySource(value = {"classpath : xxxx/xxx.properties""classpath : xxxx.properties"})

@ImportResource导入xml配置文件

可以额外分为两种模式 相对路径classpath,绝对路径(真实路径)file

注意:单文件可以不写value或locations,value和locations都可用

相对路径(classpath)

引入单个xml配置文件:

@ImportSource("classpath : xxx/xxxx.xml")

引入多个xml配置文件:

@ImportSource(locations={"classpath : xxxx.xml" , "classpath : yyyy.xml"})

绝对路径(file)

引入单个xml配置文件:

@ImportSource(locations= {"file : d:/hellxz/dubbo.xml"})

引入多个xml配置文件:

@ImportSource(locations= {"file : d:/hellxz/application.xml" , "file : d:/hellxz/dubbo.xml"})

取值:使用@Value注解取配置文件中的值

@Value("${properties中的键}")private String xxx;

@Import 导入额外的配置信息

功能类似XML配置的,用来导入配置类,可以导入带有@Configuration注解的配置类或实现了ImportSelector/ImportBeanDefinitionRegistrar。


在Spring中,事务有两种实现方式,分别是编程式事务管理声明式事务管理两种方式


@ControllerAdvice 统一处理异常

@ControllerAdvice(annotations = {RestController.class, Controller.class}) //拦截加了RestController和Controller的类

@ExceptionHandler 声明异常处理方法


@ModelAttribute


@InitBinder

@ControllerAdvice 配合 @InitBinder 实现对请求参数的预处理

来源地址:https://blog.csdn.net/weixin_48063660/article/details/127820917

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯