最近在工作中遇到这样的一个问题,就是创建了一个工具类,然后工具类中需要查询相关信息要引入Service去查询,如何解决呢?有的小伙伴可能直接注入Service然后报空指针异常了,那么如何进行解决呢,看下文:
方法一:
//注意,添加@Component注解,交给Spring进行管理
@Component
public class TestUtil {
@Autowired
private TestService testService;
public String getMessage(){
return testUtil.testService.getName("渣渣东");
}
}
@Service
public class UserServiceImpl implements UserService {
//注入Util
@Autowired
private TestUtil testUtil ;
@Override
public String query(String name) {
String message = testUtil.getMessage();
System.out.println(message);
return "hello "+message+":欢迎来到东哥的博客";
}
}
方法二:
//注意,添加@Component注解,交给Spring进行管理
@Component
public class TestUtil {
private static TestUtil testUtil;
@Autowired
private TestService testService;
@PostConstruct
public void init(){
testUtil = this;
testUtil.testService = this.testService;
}
public String getMessage(){
return testUtil.testService.getName("渣渣东");
}
}
@Service
public class UserServiceImpl implements UserService {
//注入Util
@Autowired
private TestUtil testUtil ;
@Override
public String query(String name) {
String message = testUtil.getMessage();
System.out.println(message);
return "hello "+message+":欢迎来到东哥的博客";
}
}
以上两种方法就是解决Util中注入Service之后报空指针异常的方案,两种方法本人都亲自测试没有问题,若您在参考的过程中发现问题,欢迎下方留言,我们一起进行讨论!
学习java越久,就会发现你知道的越多,你不知道的越多,加油吧,骚年们!