【问题标题】:How to fix NullPointerException on Autowired JdbcTemplate如何修复 Autowired JdbcTemplate 上的 NullPointerException
【发布时间】:2019-01-25 19:33:57
【问题描述】:

我正在重写我的问题,希望能更有意义并获得帮助。

我有一个Controller、2 个ClassRepository 和 2 个Service 类(其中一个没有用@Service 注释,因为我在注释它时遇到错误,所以我只是将它用作一个类)

未使用@Service 注释的类我只是将rateRepository 对象从已注释的服务传递给未注释的服务。

如果我在带注释的服务中执行以下代码

String zone = rateRepository.getPurolatorZone(request.getShipToZip().substring(0,3));

效果很好。

但是在我实例化该类的未注释类中

InternationalRateService internationalRateService = new InternationalRateService(this.rateRepository);

更新: 我用@Service 注释了我的InternationalRateService 类并决定自动装配存储库本身,但我仍然在getPurolatorZone 方法上得到一个空指针异常。我不明白为什么它在一个服务中工作,但在设置时不能在另一个服务中工作一样。

第二次更新: 事实证明,我是个白痴,因为我什至没有想过检查我传递给存储库的字符串是否是实际引发错误的原因。原来我从来没有这样设置本地 shiptozip 变量。是的,我是个白痴。

【问题讨论】:

    标签: java spring spring-data spring-jdbc


    【解决方案1】:

    Spring 只会在 Spring 托管 bean 中注入依赖项。如果你使用new 创建一个对象,那么它就不是spring managed bean。

    在您的情况下,InternationalRateService 的对象不受管理,因为您是由 new 运算符创建的。

    所以,在你的控制器中注入InternationalRateService,这样所有的依赖都被注入了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 2020-04-23
      • 2020-11-26
      • 2021-09-03
      相关资源
      最近更新 更多