例子:
public interface IFileService {String upload(String fileName);}
注解实现
通过 @Autowired 和 @Qualifier 配合注入
@Autowired@Qualifier("interface1Impl1")IFileService fileService; //正常启动
使用 @Resource 注入,根据默认类名区分
@Resource(name = "interface1Impl1")IFileService fileService; //正常启动
使用 @Resource 注入,根据 @Service 指定的名称区分
@Resource(name = "s1")IFileService fileService; //正常启动
配置实现
@Component("SsoConfig")@ConfigurationProperties(prefix = "sso")@Datapublic class SsoConfig {private UploadType type = SsoType.AWS;}public enum SsoType {AWS,ALIYUN}
@Configuration@ConditionalOnProperty(name="sso.type",havingValue = "AWS")@Servicepublic class AwsFileServiceImpl implements IFileService {public String upload(String fileName) {// AWS文件上传业务逻辑return null;}}@Configuration@ConditionalOnProperty(name="sso.type",havingValue = "ALIYUN")@Servicepublic class AliyunFileServiceImpl implements IFileService {public String upload(String fileName) {// ALIYUN 文件上传业务逻辑return null;}}
sso:type: aws
