springboot注解

2024-01-07 17:52:07

概要

springboot注解种类繁多, 需要做一个归类解释, 学习归纳。

示例和解释

@Component
@ConditionalOnMissingBean(V2.class)
@ConfigurationProperties(prefix = “checkunit.v2.fossbot”)
public class V1 extends V {
private String gateway;
@Value(“${a.b.c}”)
private String token;
private String pbiId;
private String scanFileInfoTable;
}
Component注解会将这个类装在到容器中

public abstract class FossbotClient {

}

@Resource
private V v;
Resoure注解
会去容器里面找bean对象

Component和Resource一个负责注入, 一个负责加载, 交给spring 容器去进行管理, 由他来进行创建和管理。
他和直接进行new 的区别在于, 自己new的对象, 里面的属性值要自己注入,但是交给spring容易之后, 可以通过@value, @ConfigurationProperties等方式来进行属性加载, 十分方便

技术名词解释

@Configuration
public class LogLevelListenerAutoConfiguration {
@Resource
private LoggingSystem loggingSystem;

@Bean
@ConditionalOnExpression("!'${log.level.dynamic.disable:}'.equals('true')")
public LogLevelListener buildLogLevelListener() {
    return new LogLevelListener(loggingSystem);
}

}
// 这里的@Bean和@Configuration配合将LogLevelListener注入容器中
@Configration 注解:声明当前类是一个配置类,相当于 Spring 中的一个 XML 文件
@Bean 注解:作用在方法上,声明当前方法的返回值是一个 Bean

public class LogLevelListener {
private LoggingSystem loggingSystem;

/**
 * 动态设置日志级别
 * 只设置级别时内容为日志级别。例如:INFO、ERROR
 * 当需要对某一个包单独设置时,通过json格式来指定。例如:
 * 设置com.huawei.it.security.kiacheck.task.listener.NoticeListener打debug日志,
 * {"dynamicLevel":"DEBUG", "loggerName":"com.huawei.it.security.kiacheck.task.listener.NoticeListener"}
 *
 * @param dynamicLogInfo the dynamic log info
 */
@Value("${log.dynamicLevel:}")
public void onChange(String dynamicLogInfo) {
   //  设置日志级别
    setDynamicLevel(dynamicLogInfo);
}

}

`

文章来源:https://blog.csdn.net/qq_43369327/article/details/135412309
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。