用于创建Web服务配置的Spring Boot CRUD操作是什么?

来源:爱站网时间:2021-11-01编辑:网友分享
最近爱站技术小编和一些朋友都遇到过一个问题:用于创建Web服务配置的Spring Boot CRUD操作是什么?小编觉得口头上的表述是很难讲的清楚的,现在用一篇介绍文介绍给大家,大家有需要的可以参考一下。

最近爱站技术小编和一些朋友都遇到过一个问题:用于创建Web服务配置的Spring Boot CRUD操作是什么?小编觉得口头上的表述是很难讲的清楚的,现在用一篇介绍文介绍给大家,大家有需要的可以参考一下。

问题描述


我不熟悉使用Spring Boot。我正在尝试为CRUD操作创建一个宁静的Web服务。

我已经创建了模型,存储库和以下文件:服务文件:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class EmployeeServiceApplication {
     public static void main(String[] args) {
        SpringApplication.run(EmployeeServiceApplication.class, args);
     }
    }

控制器文件:


@RestController
public class Controller {

    @Autowired
    private EmployeeServiceDesc employeeService;

    @GetMapping("/employee/")
    public List getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @GetMapping("/employee/{employeeId}")
    public Employee getEmployeeById(@PathVariable int employeeId) {
        return employeeService.getEmployeeById(employeeId);
    }

    @PostMapping("/employee/")
    public ResponseEntity add(@RequestBody Employee newEmployee, UriComponentsBuilder builder) {
        Employee employee = employeeService.addEmployee(newEmployee);
        if(employee == null) {
            return ResponseEntity.noContent().build();
        }
        HttpHeaders headers = new HttpHeaders();
        headers.setLocation(builder.path("/employee/{id}").buildAndExpand(employee.getId()).toUri());
        return new ResponseEntity(headers, HttpStatus.CREATED);
    }

    @PutMapping("/employee/")
    public ResponseEntity updateEmployee(@RequestBody Employee v) {
        Employee employee = employeeService.getEmployeeById(v.getId());
        if(employee == null) {
            return new ResponseEntity(HttpStatus.NOT_FOUND);
        }
        employee.setName(employee.getName());
        employee.setDOB(employee.getDOB());
        employee.setSalary(employee.getSalary());
        employeeService.updateEmployee(employee);
        return new ResponseEntity(employee, HttpStatus.OK);
    }

    @DeleteMapping("/employee/{id}")
    public ResponseEntity deleteEmployee(@PathVariable int id) {
        Employee employee = employeeService.getEmployeeById(id);
        if(employee == null) {
            return new ResponseEntity(HttpStatus.FOUND);
        }
        employeeService.deleteEmployee(id);
        return new ResponseEntity(HttpStatus.NO_CONTENT);
    }
}

当我通过邮递员发送请求时,出现错误:找不到我想我缺少一些配置,但是不确定我应该做什么?有人可以帮我吗?

思路一:


您应该具有类似下面的内容(您应该映射请求)

@RestController
@RequestMapping("/")
public class Controller {
......
....
..
}
@RestController
@RequestMapping("/api")
public class Controller {
}

注释后不起作用

spring-boot将扫描com.x.x.以下软件包中的组件,因此,如果您的控制器位于com.x.x中,则需要对其进行显式扫描。

@SpringBootApplication
@ComponentScan(basePackageClasses = Controller.class) // you should be able to justified as your packages structure 
    public class EmployeeServiceApplication {
     public static void main(String[] args) {
        SpringApplication.run(EmployeeServiceApplication.class, args);
     }
    }

思路二:


您不一定需要@RequestMapping才能公开您的服务。我相信这里的问题是由于映射末尾的'/'。尝试更换

@GetMapping("/employee/")

with

@GetMapping("/employee")

 以上内容就是爱站技术频道小编为大家分享的用于创建Web服务配置的Spring Boot CRUD操作是什么?看完以上分享之后,大家应该都知道操作是什么了吧。

上一篇:怎么操作到期时间数据结构

下一篇:如何在Java中使用密钥库来存储私钥?

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载