需求:
公司将一个原先从工具类A中通过key值来获取value,后来觉得需要把它编写进数据库以方便修改它的value值。我负责把这个类编写进数据库。但是,经过修改后发现原先调取的有错误。
开始:
我编写一个和原先一模一样的类(当然,不是在同一个包下)B,发现有些地方需要调用两个类,会有错误,于是我机智的把我创建的类去了一个字母(哈哈哈,机智如我)。于是,我写的这个类就可以修改了,但是怎么才可以在其他类不变的情况下只修该工具类A呢?
第一个问题:注入到工具类中的service服务一个为null
我在网上找了很多的答案,最终这个解决了我的问题
@Component 《——————第一步:这个地方一定要加Component
public class UtilTest{
@Autowired
protected TestService testService; 《————————第二步:上面的Autowired注释要加上
private static UtilTest utilTest;
@PostConstruct 《————————第三步:要写这个
public void init(){
utilTest = this;
utilTest.testService = this.testService;
}
public static String getValueByKey(String key){
String value = utilTest.testService.getValueByKey(key); 《————————第四步:注意这里的调用
}
}
好了,这样就可以调用到这个了,这个TestService是直接调用数据库进行查询的service接口
——————————————————————————————————————————————————
第二个问题:一直显示405错误
为null的问题已经解决了,但是接下来就一直显示我要调用的getValueByKey(key)这个方法写错了。啊啊啊啊,我要奔溃了,无论我怎么挣扎都是显示405错误,下面是我的代码
这个是TestService服务的
@RequestMapping(path = "/test/get-value-by-key",method = RequestMethod.GET)
String getValueByKey(@RequestBody String example);
这个是需要调用的数据库的服务
@RequestMapping(path = "/get-value-by-key",method = RequestMethod.GET)
public String getSystemPropertiesByKey(@RequestBody String example){
}
我看了看,其他的都可以这么写,No Problem But why??? 百思不得其解,最后找万能的度年,终于好了,下面是我的代码
@RequestMapping(path = "/test/get-value-by-key",method = RequestMethod.GET)
String getValueByKey(@RequestParam("example") String example);
@RequestMapping(path = "/get-value-by-key",method = RequestMethod.GET)
public String getSystemPropertiesByKey(@RequestParam("example") String example){
}
上面这代码只是将@RequestBody改为@RequestParam(“example”)就解决405错误了,至于为什么,我也不知道
我是只菜鸡,欢迎各位大佬多多指教!!!!!!!