问题遇到的现象和发生背景
Springboot 项目中Controller类中@Resource注入为空 使用SpringUtil.getBean获取居然可以
遇到的现象和发生背景,请写出第一个错误信息
@RestController
@RequestMapping("/template/market")
public class TemplateMarketController {
@Resource
public DataEaseTemplateMarketService dataEaseTemplateMarketService;
@ApiOperation("查询模板")
@PostMapping("/search")
private MarketBaseResponse searchTemplate(@RequestBody TemplateMarketSearchRequest request) {
# 这个方式可以正常提取
DataEaseTemplateMarketService dataEaseTemplateMarketService1 = SpringUtil.getBean(DataEaseTemplateMarketService.class);
return dataEaseTemplateMarketService.searchTemplate(request);
}
@Service
@DS("dbsyj")
public class DataEaseTemplateMarketService {
private final static String POSTS_API="/api/content/posts?page=0&size=2000";
private final static String CATEGORIES_API="/api/content/categories";
@Resource
private SystemParameterService systemParameterService;
/**
* @Description Get template file from template market
* @param templateUrl template url
*/
public PanelTemplateFileDTO getTemplateFromMarket(String templateUrl){
if(StringUtils.isNotEmpty(templateUrl)){
String sufUrl = systemParameterService.templateMarketInfo().getTemplateMarketUlr();
Gson gson = new Gson();
String templateInfo = HttpClientUtil.get(sufUrl+templateUrl,null);
return gson.fromJson(templateInfo, PanelTemplateFileDTO.class);
}else{
return null;
}
}
/**
* @Description Get info from template market content api
* @param url content api url
*/
public String marketGet(String url,String accessKey){
HttpClientConfig config = new HttpClientConfig();
config.addHeader("API-Authorization",accessKey);
return HttpClientUtil.get(url,config);
}
public MarketBaseResponse searchTemplate(TemplateMarketSearchRequest request){
try{
BasicInfo basicInfo = systemParameterService.templateMarketInfo();
String result = marketGet(basicInfo.getTemplateMarketUlr()+POSTS_API,basicInfo.getTemplateAccessKey());
List<TemplateMarketDTO> postsResult = JSONObject.parseObject(result).getJSONObject("data").getJSONArray("content").toJavaList(TemplateMarketDTO.class);
return new MarketBaseResponse(basicInfo.getTemplateMarketUlr(),postsResult);
}catch (Exception e){
DataEaseException.throwException(e);
}
return null;
}
public List<String> getCategories(){
BasicInfo basicInfo = systemParameterService.templateMarketInfo();
String resultStr = marketGet(basicInfo.getTemplateMarketUlr()+CATEGORIES_API,basicInfo.getTemplateAccessKey());
List<TemplateCategory> categories = JSONObject.parseObject(resultStr).getJSONArray("data").toJavaList(TemplateCategory.class);
if(CollectionUtils.isNotEmpty(categories)){
return categories.stream().sorted(Comparator.comparing(TemplateCategory::getPriority)).map(TemplateCategory :: getName).collect(Collectors.toList());
}else{
return null;
}
}
}