Springboot动态寻找注入类
接口层Token
public interface Token {
public String getToken();
}
实现类
@Component
public class QQToken implements Token{
public String getToken(){
return "QQ";
}
}
@Component("DingDingToken")
public class DingDingToken implements Token{
public String getToken(){
return "dingding";
}
}
@Component
public class WeChatToken implements Token{
public String getToken(){
return "WeChat";
}
}
Service层
public class ResponToken {
private final Map<String, Token> token;
public ResponToken(Map<String, Token> token) {
this.token = token;
}
public String getToken(String type){
String typename=type+"Token";
return token.get(typename).getToken();
}
}
Controller层
@RequestMapping("gettoken")
public String gettoken(String type){
String name=responToken.getToken(type);
return name;
}
config注入配置
@Configuration
public class Config {
@Autowired
private Map<String, Token> token;
@Bean
public ResponToken responToken() {
return new ResponToken(token);
}
}
调用
localhost:端口/接口地址/dingDing(此时找到DingDingToken 返回dingding)