根据配置文件只加载指定的Bean,条件化Bean
近期在工作中遇到实际问题:在不同的环境中,需要加载不同的工具类。这个就可以使用到Spring的条件化Bean。
话不多说,直接上代码。
例如,当前对于IService接口:
public interface IService {
void test();
}
有两个不同的实现类:
public class AwsServiceImpl implements IService{
@Override
public void test() {
System.out.println("AwsServiceImpl test ... ");
}
}
public class HttpServiceImpl implements IService{
@Override
public void test() {
System.out.println("HttpServiceImpl test ... ");
}
}
而在不同的环境中,需要调用不同的实现类。一种思路是在配置文件中声明环境,并将两个实现类存入一个map<String, IService>
中,KEY为不同的环境,即在不同的环境中,可以调用特定的实现类,具体的代码如下: