SpringBoot注解大全

SpringBoot注解大全

 

常用配置注解:

@SpringBootApplication:最核心注解,用在SpringBoot主类上,标识这是SpringBoot应用,也是@Configuration、@EnableAutoConfiguration、@ComponentScan 这三个注解的组合。


@EnableAutoConfiguration:标识自动配置。


@Configuration:等同于spring的XML配置文件;使用Java代码可以检查类型安全。


@ComponentScan :组件扫描,标识此类会被spring自动扫描并且装入bean容器。


@Bean:用@Bean标注方法等价于XML中配置的bean。


@Value:注入application.properties配置的属性的值。


@Import:用来导入一个或者多个 @Configuration 注解修饰的类。


@ImportResource:用来导入一个或者多个 Spring 配置文件。


@EnableAsync : 开启异步任务的支持(多线程)


@Asyns : 声明这是一个异步任务,可以在类级别 和方法级别声明.


@EnableScheduling : 开启对计划任务的支持(定时器)


@Scheduled : 声明这是一个计划任务 支持多种计划任务,包含 cron. fixDelay fixRate


@profile: 为不同环境下使用不同的配置提供了支持


@ConfigurationProperties:用来加载额外的配置(如 .properties 文件),可用在 @Configuration 注解类,或者 @Bean 注解方法上面。


@EnableConfigurationProperties:一般要配合 @ConfigurationProperties 注解使用,用来开启对 @ConfigurationProperties 注解配置 Bean 的支持。


@AutoConfigureAfter: 用在自动配置类上面,表示该自动配置类需要在另外指定的自动配置类配置完之后。

有关conditional的注解:

@Conditional:标识一个 Spring Bean 或者 Configuration 配置文件,当满足指定的条件才开启配置。(Spring 4.0 添加的新注解)
@ConditionalOnBean(@ConditionalOnMissingBean):组合 @Conditional 注解,当容器中有指定的 Bean 才开启配置。

@ConditionalOnClass(@ConditionalOnMissingClass):组合 @Conditional 注解,当容器中有指定的 Class 才开启配置。

@ConditionalOnWebApplication(@ConditionalOnNotWebApplication):组合 @Conditional 注解,当前项目类型是 WEB 项目才开启配置。

@ConditionalOnProperty:组合 @Conditional 注解,当指定的属性有指定的值时才开启配置。

@ConditionalOnExpression:组合 @Conditional 注解,当 SpEL 表达式为 true 时才开启配置。

@ConditionalOnJava:组合 @Conditional 注解,当运行的 Java JVM 在指定的版本范围时才开启配置。

@ConditionalOnResource:组合 @Conditional 注解,当类路径下有指定的资源才开启配置。

@ConditionalOnJndi: 组合 @Conditional 注解,当指定的 JNDI 存在时才开启配置。

@ConditionalOnCloudPlatform:组合 @Conditional 注解,当指定的云平台激活时才开启配置。

@ConditionalOnSingleCandidate: 组合 @Conditional 注解,当指定的 class 在容器中只有一个 Bean,或者同时有多个但为首选时才开启配置

 

SpringMVC:

@ResponseBody:标识该方法的返回结果直接写入HTTP response body中,直接返回json数据,一般在异步获取数据时使用,用于构建RESTful的api,配合@RequestMapping一起使用。


@GetMapping:是@RequestMapping(method = RequestMethod.GET)的缩写,简化常用的HTTP方法的映射,例如@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping。(Spring4.3引进)


@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。
该注解有6个属性:
    params:指定request中必须包含某些参数值是,才让该方法处理。

    headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

    value:指定请求的实际地址,指定的地址可以是URI Template 模式

    method:指定请求的method类型, GET、POST、PUT、DELETE等

    consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;

    produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回


@RequestParam:主要用于接收http://host:port/path?参数名=参数值数据

@GetMapping("/paySerial") public String demo( @RequestParam("payId") String payId) { }

@PathVariable:路径变量,主要用于接收http://host:port/path/{参数值}数据。

@GetMapping("/paySerial/{context}") public String demo( @PathVariable("context") String payId) { }



声明Bean的注解:

@RestController:标识控制层,@ResponseBody和@Controller的合集。


@Controller:标识控制层。


@Service:标识业务层。


@Repository :标识数据访问层。


@Component:当组件不好归类分层时(控制层、业务层、数据层),我们可以使用这个注解进行标注。



注入Bean的注解:

@Autowired:自动导入依赖的bean,依赖注入(by type自动注入)。


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


@Resource:自动导入依赖的bean,依赖注入(by name自动注入)。有两个重要属性,分别是name和type,name属性解析为bean的名字,而type属性则被解析为bean的类型。若使用name属性,则使用byName的自动注入策略,使用type属性则使用byType的自动注入策略。


@Inject:等价于默认的@Autowired,但没有required属性.



全局异常注解:

@ControllerAdvice:包含@Component。可以被扫描到。统一处理异常。


@ExceptionHandler(Exception.class):用在方法上面表示遇到这个异常就执行以下方法。

 

AOP切面编程注解:

@Aspect : 声明这是一个切面 


@After @Before. @Around :定义切面,可以直接将拦截规则(切入点 PointCut)作为参数


@PointCut : 专门定义拦截规则 然后在 @After @Before. @Around 中调用


@Transcational : 事务处理


@Cacheable : 数据缓存


@EnableAaspectJAutoProxy : 开启Spring 对 这个切面(Aspect )的支持


@Target (ElementType.TYPE):元注解,用来指定注解修饰类的那个成员 -->指定拦截规则


@Retention(RetentionPolicy.RUNTIME) :当定义的注解的@Retention为RUNTIME时,才能够通过运行时的反射机制来处理注解.-->指定拦截规则

 

JPA注解

@Entity:@Table(name=" "),标识一个实体类。在JPA中两个注解一般一起使用,若表名和实体类名相同的话@Table可以省略。


@MappedSuperClass:用在确定是父类的entity上。父类的属性子类可以继承。


@OneToOne、@OneToMany、@ManyToOne:对应hibernate配置文件中的一对一,一对多,多对一。


@Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。


@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “ “):标识为一个实体生成一个唯一标识的主键。
strategy声明主键生成策略:SEQUENCE(由数据库的序列产生主键, MYSQL不支持)、Auto(默认)、IDENTITY(采用数据库自增长生成, Oracle不支持)、native(特定的数据库产生主键,便于移植),generator 声明主键生成器名称。


@SequenceGeneretor(name = “ ”, sequenceName = “ ”, allocationSize = 1):name为sequence的名称,sequenceName为数据库的sequence名称,可一致。


@NoRepositoryBean:用作父类的repository,spring不会去实例化该repository。


@JsonIgnore:作用是json序列化时将Javabean中的一些属性忽略掉,序列化和反序列化都受影响。


@JoinColumn(name=” ”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。


@Column:如果字段名与列名相同,则可以省略。


@Id:表示该属性为主键。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值