SpringBoot-注解一句话

@Configuration 启动时将该类生成bean交给Spring管理

@Bean 从方法中返回一个bean交给Spring管理,默认用方法名作为beanName,可指定name(推荐)

@Primary 存在多个bean时首选你了

@Qualifier 通过name得到一个bean,和@Autowired结合使用

@PostConstruct 我来自java,我先跑,我只跑一次

@Async 想让我干活,再给我一个线程,你可以不管我

@Controller @Service @Repositry @Mapper 分层开发web服务的几个常客

@Aspect 告诉我想额外的干些啥,我暗地里帮你搞定

根据条件注入Bean

@ConditionalOnBean 当容器有指定Bean的条件下注入

@ConditionalOnMissingBean 当容器没有指定Bean的情况下才注入

@ConditionalOnClass 当容器有指定类的条件下

@ConditionalOnMissingClass 当容器没有指定类的情况下

@ConditionalOnProperty 指定的属性是否有指定的值,如@ConditionalOnProperty(name = {"spring.kafka.jaas.enabled"})

@ConditionalOnSingleCandidate 当前指定Bean在容器中只有一个,或者虽然有多个但是指定首选Bean

@ConditionalOnExpression 基于SpEL表达式作为判断条件   @ConditionalOnExpression("'true'.equals('${redis.enable}')")

@DependsOn({"flyway","flywayInitializer"}) 用于解决flyway初始化数据库和项目中需要先执行某个逻辑时发生的顺序问题

JSON相关

@JsonProperty 用于字段属性上,在序列化和反序列化时使用value指定的属性名如  @JsonProperty("user_id")  private String userId

@JsonIgnore 用于字段属性,当对象序列为json数据时候忽略该字段(结果中不包含该字段) @JsonIgnore  private String password 

@JsonFormat    通常用于格式化时间类型的字段格式   @JsonFormat (timezone = “GMT+8”,shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")  private LocalDateTime createTime

@JsonIgnoreProperties  和@JsonIgnore相似,作用于类或者属性上;加上ignoreUnknown=true,表示如果json字符串字段有某些字段,类里面没有,可以忽略,否则可能报错 Unrecognized field xxx

@JsonInclude  序列化设置,默认是JSONInclude.Include.ALWAYS,表示任何情况下字段都会参与序列化,其他

    JsonInclude.Include.NON_NULL  当字段值为null,不序列化这个字段

 

posted @ 2021-04-03 17:52  鼠标的博客  阅读(148)  评论(0编辑  收藏  举报