Spring boot常用注解

#该注解用来修饰非静态void方法,被修饰的方法会在服务器加载servlet时自动执行,并且只会执行一次

@PostConstruct

#根据bean的别名注入,可作用在属性、方法形参上

@Qualifier

#该注解用来修饰一个需要定时执行的方法,需要在启动类加上 @EnableScheduling 来启用该注解

@Scheduled

注:默认是由单线程执行所有定时方法,扩展为多线程方式:

@Configuration
public class ScheduledConfig implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
        threadPoolTaskScheduler.setPoolSize(10);
        threadPoolTaskScheduler.setThreadNamePrefix("my-test-");
        threadPoolTaskScheduler.initialize();
        taskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
    }
}

#该注解可以将方法返回的对象加载进spring容器中, bean实例的别名默认为方法名称(首字母小写), 也可以自定义 @Bean("别名")

@Bean

#该注解常常用来声明一个配置类,通常与 @Bean 连用,配置类本身同样会加载进spring容器中

@Configuration

#该注解用来修饰一个需要异步执行的方法,需要在启动类加上 @EnableAsync 来启用该注解;该注解默认使用spring容器创建的ThreadPoolTaskExecutor, 核心线程数为8, 最大线程数为整数最大值, 非核心线程保持活跃时长为60s, 阻塞队列为LinkedBlockingQueue, 队列容量为整数最大值,  拒绝策略为AbortPolicy

@Async

  • 方式一:  在spring配置文件中配置相关参数
spring:
  task:
    execution:
      pool:
        core-size: 6
        max-size: 20
        keep-alive: 10s
        queue-capacity: 1024
      thread-name-prefix: prefix-name
  • 方式二: 使用自定义的ThreadPoolTaskExecutor
@Configuration
public class TaskExecutorConfig{
    
    @Bean
    public Executor taskExecutor(){
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        taskExecutor.setThreadNamePrefix("prefix-name");
        taskExecutor.setCorePoolSize(6);
        taskExecutor.setMaxPoolSize(200);
        taskExecutor.setKeepAliveSeconds(10);
        taskExecutor.setQueueCapacity(1024);
        taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
        return taskExecutor;
    }

}

//使用自定义的ThreadPoolTaskExecutor  @Async("taskExecutor")

#该注解用于修饰属性,其作用是将application.properties中对应的值赋给被修饰的属性

@Value("${}")

#该注解用来声明一个配置类,其作用是将application.properties中对应的值赋给该类的属性

@ConfigurationProperties(prefix = "")

#生成一个无参构造器

@NoArgsConstructor

#生成一个全参构造器

@AllArgsConstructor

#采用Builder的方式构建对象,该注解会隐含的创建一个全参实例构造器

@Builder

#提供set、get、toString、equels、hashCode方法

@Data

#根据注解的属性值来动态地决定Bean的加载; name 代表配置文件中的key,当 key 对应的值 = havingValue的值时,代表Bean可以被加载;matchIfMissing = true 代表当配置文件中不存在 对应的key时,Bean也可以被加载,matchIfMissing = false 代表当配置文件中不存在 对应的key时,Bean不可以被加载

@ConditionalOnProperty(name = "mybean.enabled", havingValue = "1", matchIfMissing = true)


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值