在Spring MVC中使用工具类调用Service层时,Service类为null如何解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012279452/article/details/79973358

因为平时在调用service层时都是在controller中,有配置扫描注入,spring会根据配置自动注入所依赖的服务层。

但因我们写的工具类不属于controller层,所以当所写接口需要调用服务层是,常常会为NULL。

下面就分享一个实践后可行的办法,如下图所示:
第一种:
@Component //申明为spring组件
public class TestUtils {
@Autowired
private TestService testService; //添加所需service的私有成员
private static TestUtils testUtils ; // 关键点1 静态初使化 一个工具类 这样是为了在spring初使化之前

public void setTestService(TestService  testService) {  
    this.testService = testService;  
}  

@PostConstruct     //关键二   通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
public void init() {  
    testUtils = this;  
    testUtils.testService = this.testService;   // 初使化时将已静态化的testService实例化
}  

}

这样下面的代码中就可以通过 testUtils.testService 来调用service处理
第二种:
这里写图片描述
主要是:1.将此工具类加上@Component注解

2.将所需调用的服务类设置成静态属性,并通过方法直接将服务层设置成工具类自己的属性即可。

阅读更多

扫码向博主提问

法海洗头用飘柔

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • IT
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页