技术分享
😆开发中常用注解
00 min
2024-8-12
2024-8-13
type
status
date
slug
summary
tags
category
icon
password

# Spring Boot 常用注解

# @SpringBootApplication

定义在main方法入口类处,用于启动sping boot应用项目

# @EnableAutoConfiguration

让spring boot根据类路径中的jar包依赖当前项目进行自动配置
在src/main/resources的META-INF/spring.factories

# @ImportResource

加载xml配置,一般是放在启动main类上

# @Value

application.properties定义属性,直接使用@Value注入即可

# @ConfigurationProperties(prefix="person")

可以新建一个properties文件,ConfigurationProperties的属性prefix指定properties的配置的前缀,通过location指定properties文件的位置

# @EnableConfigurationProperties

用 @EnableConfigurationProperties注解使 @ConfigurationProperties生效,并从IOC容器中获取bean。
https://blog.csdn.net/u010502101/article/details/78758330

# @RestController

组合@Controller和@ResponseBody,当你开发一个和页面交互数据的控制时,比如bbs-web的api接口需要此注解

# @RequestMapping("/api2/copper")

用来映射web请求(访问路径和参数)、处理类和方法,可以注解在类或方法上。注解在方法上的路径会继承注解在类上的路径。
produces属性: 定制返回的response的媒体类型和字符集,或需返回值是json对象

# @RequestParam

获取request请求的参数值

# @ResponseBody

支持将返回值放在response体内,而不是返回一个页面。比如Ajax接口,可以用此注解返回数据而不是页面。此注解可以放置在返回值前或方法前。

# @Bean

@Bean(name="bean的名字",initMethod="初始化时调用方法名字",destroyMethod="close")
定义在方法上,在容器内初始化一个bean实例类。

# @Service

用于标注业务层组件

# @Controller

用于标注控制层组件(如struts中的action)

# @Repository

用于标注数据访问组件,即DAO组件

# @Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

# @PostConstruct

spring容器初始化时,要执行该方法

# @PathVariable

用来获得请求url中的动态参数

# @ComponentScan

注解会告知Spring扫描指定的包来初始化Spring

# @EnableZuulProxy

路由网关的主要目的是为了让所有的微服务对外只有一个接口,我们只需访问一个网关地址,即可由网关将所有的请求代理到不同的服务中。Spring Cloud是通过Zuul来实现的,支持自动路由映射到在Eureka Server上注册的服务。Spring Cloud提供了注解@EnableZuulProxy来启用路由代理。

# @Autowired

在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出 BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。
当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉 Spring: 在找不到匹配 Bean 时也不报错

# @Configuration

# @Import(Config1.class)

导入Config1配置类里实例化的bean

# @Order

@Order(1),值越小优先级超高,越先运行

# @ConditionalOnExpression

开关为true的时候才实例化bean

# @ConditionalOnProperty

这个注解能够控制某个 @Configuration 是否生效。具体操作是通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值,如果该值为空,则返回false;如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回true;否则返回false。如果返回值为false,则该configuration不生效;为true则生效。
https://blog.csdn.net/dalangzhonghangxing/article/details/78420057

# @ConditionalOnClass

该注解的参数对应的类必须存在,否则不解析该注解修饰的配置类

# @ConditionalOnMisssingClass({ApplicationManager.class})

如果存在它修饰的类的bean,则不需要再创建这个bean;

# @ConditionOnMissingBean(name = "example")

表示如果name为“example”的bean存在,该注解修饰的代码块不执行。

著作权归@pdai所有 原文链接:https://pdai.tech/md/spring/springboot/springboot-x-hello-anno.html
上一篇
Spring 拦截器:原理、实现与应用
下一篇
tp框架跨域解决