- 外部类配置类要想覆盖spring内部默认配置类信息,比较简单的方法是通过一个
@impor
注解来导入外部的配置类。
例如:用三方pom中的线程池配置类@Import(ThreadPoolTaskConfiguration.class),来覆盖spring中默认的线程池类
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Import({ThreadPoolTaskConfiguration.class, TtlMDCAdapterInitializer.class})
@Documented
public @interface EnableFWTaskExecutor {
}
- 使用 @ConfigurationProperties 注解时要注意,如果是自己在yaml上没有配置属性的默认值,并且自己的类中也没有属性配置默认值,而是去里面动态设置了默认值,则在nacos上刷新配置的时候,此属性的值仍然存在。
例如:其他外部没有去配置这个类
@Getter
@Setter
@ConfigurationProperties("dingtalk.config")
public class DingTalkProperties {
private String baseServerUrl;
@PostConstruct
public void initConfig() {
System.out.println(baseServerUrl);
baseServerUrl="http://test";
}
}
- 破环单例的两种方法:1.反射;2.反序列化(主要也是反射),会反射类的无参构造方法