Spring Boot java.lang.NullPointerException:空

亚历克斯:

我正在尝试Spring-boot使用Hibernate和REST -API 构建CRUD应用程序,但是当我尝试运行该应用程序时,一切运行正常,但控制台显示以下错误

java.lang.NullPointerException: null
    at io.javabrains.EmployerController.getAllEmployers(EmployerController.java:20) ~[classes/:na]

我尝试更改值,但是没有用

EmployerService.java

package io.javabrains;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

import io.javabrains.Entity.Employer;

@Service
public class EmployerService {

    private Repository repository;

    public List<Employer>getAllEmployers(){
        List<Employer>employers = new ArrayList<>();
        repository.findAll()
        .forEach(employers::add);
        return employers;

    }

    public void addEmployer(Employer employer) {
        repository.save(employer);
    }    
}

EmployerController.java

package io.javabrains;

import java.util.List;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import io.javabrains.Entity.Employer;

@RestController
public class EmployerController {

    private EmployerService service;


     @RequestMapping("/employer") 
     public List<Employer>getAllEmployers()
     {
         return  service.getAllEmployers();
}
    /*
     * @RequestMapping("/employer/{id}") public Employer getEmployer(@PathVariable
     * int id) { return service.getEmployer(id); }
     */

    @RequestMapping(method=RequestMethod.POST,value="/employer/create")
    public void addEmployer(@RequestBody Employer employer) {
        service.addEmployer(employer);  
    }
}

....

samuelj90:

在分析给定的代码片段时,发生空指针异常,因为您的代码没有要求spring依赖注入器将其注入EmployerService为对的依赖EmployerController,因此它没有将EmployerServicebean类注入到引用中,private EmployerService employerService;因此in中为null EmployerController您可以通过在中添加@Autowire注释private EmployerService service;引用来要求Spring Dependency Injector注入依赖项。EmployerController

更新您EmployerService的以下内容即可

package io.javabrains;

import java.util.List;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import io.javabrains.Entity.Employer;

@RestController
public class EmployerController {

  //UPDATE : Autowiring
  @Autowired
  private EmployerService employerService;


  @RequestMapping("/employer")
  public List < Employer > getAllEmployers() {
    return service.getAllEmployers();
  }
  /*
   * @RequestMapping("/employer/{id}") public Employer getEmployer(@PathVariable
   * int id) { return employerService.getEmployer(id); }
   */

  @RequestMapping(method = RequestMethod.POST, value = "/employer/create")
  public void addEmployer(@RequestBody Employer employer) {
    employerService.addEmployer(employer);
  }
}

并且,Service尝试访问时也会发生相同的问题repository

更新EmployeeService.java代码包括@autorwired逻辑:

package io.javabrains;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

import io.javabrains.Entity.Employer;

@Service
public class EmployerService {

    @Autowired
    private Repository repository;

    public List<Employer>getAllEmployers(){
        List<Employer>employers = new ArrayList<>();
        repository.findAll()
        .forEach(employers::add);
        return employers;

    }

    public void addEmployer(Employer employer) {
        repository.save(employer);
    }    
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Boot自动连线服务java.lang.NullPointerException

在 Spring Boot 应用程序中面临 java.lang.NullPointerException

休眠继承/ Spring java.lang.NullPointerException

Elasticsearch和Java Spring Boot:java.lang.NoSuchMethodError:

Spring Boot安全性:java.lang.StackOverflowError

通过JSON发送java.lang.Boolean(Spring Boot)

Spring Boot JPA 测试因 java.lang.IllegalArgumentException 而失败

空安全静态方法中空输入的 java.lang.NullPointerException

Java.lang.NullPointerException错误。检查空对象

Spring MVC-嵌套异常是java.lang.NullPointerException

Spring Data Redis:StringRedisTemplate上的java.lang.NullPointerException

没有Spring Boot的Java Spring测试-错误java.lang.IllegalStateException:无法加载ApplicationContext

没有Spring Boot的Java Spring测试-错误java.lang.IllegalStateException:无法加载ApplicationContext

java.lang.NullPointerException ... int关于空对象引用的java.lang.CharSequence.length()'

WAS 7.0中的奇怪行为:java.lang.ClassNotFoundException:类java.lang.NullPointerException:空

Kotlin:java.lang.NullPointerException:指定为非空的参数在 Java 2 Kotlin 迁移后为空

Spring Boot:java.lang.IllegalArgumentException:发现了多个名称为[spring_web]的片段

Spring-Boot,Spring-Data-Cassandra:自动连线CassandraRepository,java.lang.NoClassDefFoundError

java.lang.NullPointerException?

java.lang.NullPointerException:尝试在空对象引用上调用虚方法,而它不为空

Spring Boot和Java java.lang.OutOfMemoryError:超出了GC开销限制

引起原因:java.lang.BootstrapMethodError:java.lang.NoClassDefFoundError:redis / clients / jedis / Tuple-Redis Spring Boot

使用java.lang.NoClassDefFoundError结束运行Spring MVC + Spring Boot Gradle Java 9项目:java / sql / SQLException

Spring Boot StackOverFlowError:空

java.lang.NullPointerException:尝试从空数组读取,android studio Java

java.lang.NullPointerException: Gson().fromJson(placeJson, Place::class.java) 不能為空

Spring Boot OpenFeign:java.lang.IllegalStateException:方法具有太多的Body参数

mvn spring-boot:在java.lang.LinkageError中运行结果:违反加载程序约束

Spring Boot无法识别我的Jpa存储库不是托管类型:类java.lang.Long