Spring的条件加载
条件加载的基本认知
添加加载是让我们根据需求来加载对于的Bean,并不是全部进行加载,是通过条件判断来进行加载。
这个是条件加载需要使用到的注解,它是Spring里面的,这个注解可以标注在类、方法上面,通过Condition进行判断,来决定是否加载,这个value是一个数组,也就是可能有多个且都需要满足条件才行。
这里看到它有两个参数,且都需要满足条件才会返回true。
第一个参数ConditionContext是用来获取系统信息的。
BeanDefinitionRegistry getRegistry()从中可以获取到Bean的定义
ConfigurableListableBeanFactory getBeanFactory();用于获取Bean的工程
Environment getEnvironment()用于获取配置信息
ResourceLoader getResourceLoader用于获取资源信息
ClassLoader getClassLoader()获取类加载信息
第二个参数AnnotatedTypeMetadata是用来获取注解或者方法的原数据
条件加载的基本使用
定义一个测试类来进行试验,定义一个方法进行测试
在方法里面创建一个SimpleMetadataReaderFactory对象用于获取加载资源的元数据
可以在src文件夹下创建一个新的包,在这个包中进行定义一个随机数生成期,也就是对于上面的那个图进行创建。
这个类型必须是要泛型的,因为可能生成的类型是不一致的,可能为int或Boolean类型。
之后创建几个不同的调用如int或Boolean类型进行使用,需要实现Condition接口,选择的包是要在context下面的。
之后在里面完成条件判断
同样的操作在另一个Condition实现,如int类型的。
之后就是应用条件配置,也就是需要创建一个配置类,在这个类中对之前的两个类型的Condition进行调用。
之后需要去application.yml进行定义配置参数,这里定义一个int类型表示,生成的随机数是int类型的。
这里的运用都是在方法上进行使用的,但从Condition这个注解上可以得知,也可以在类上面进行使用。
这里表示当配置文件中的Condition的second为true的时候才会生效,之后定义一个类来进行使用。