SpringBoot中项目如何在Util中注入Service实战

2,369 阅读1分钟

最近在工作中遇到这样的一个问题,就是创建了一个工具类,然后工具类中需要查询相关信息要引入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越久,就会发现你知道的越多,你不知道的越多,加油吧,骚年们!