繁体   English   中英

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderController' 错误

[英]org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderController' error

嗨,我是 SpringBoot 的新手,当我尝试运行应用程序时,我不断收到此错误以及“上下文初始化期间遇到的异常 - 取消刷新尝试”。 这是我的 controller 类(orderController)

`package com.example.demo.controller;

 import com.example.demo.model.Order;
 import com.example.demo.repository.OrderRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;


 import java.util.List;

 @RestController
 @RequestMapping("api/")
 public class OrderController {

@Autowired
private final OrderRepository orderRepository;

public OrderController(OrderRepository orderRepository) {
    this.orderRepository = orderRepository;
}

@GetMapping("/Order")
public ResponseEntity<List<Order>> getAllOrders() {
    return ResponseEntity.ok(this.orderRepository.findAll());

}
@PostMapping("/Order")
public ResponseEntity<Order> createOrders(@RequestBody Order orderRequest) {
    Order order=new Order();
    order.setId(orderRequest.getId());
    order.setSellerId(orderRequest.getSellerId());
    order.setAddress(orderRequest.getAddress());

    return ResponseEntity.ok(this.orderRepository.save(order));

}

}

`

删除字段上的@Autowired 注释并在构造函数级别添加。

package com.example.demo.controller;

 import com.example.demo.model.Order;
 import com.example.demo.repository.OrderRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;


 import java.util.List;

 @RestController
 @RequestMapping("api/")
 public class OrderController {

//@Autowired -remove from here
private final OrderRepository orderRepository;

@Autowired // add here
public OrderController(OrderRepository orderRepository) {
    this.orderRepository = orderRepository;
}

@GetMapping("/Order")
public ResponseEntity<List<Order>> getAllOrders() {
    return ResponseEntity.ok(this.orderRepository.findAll());

}
@PostMapping("/Order")
public ResponseEntity<Order> createOrders(@RequestBody Order orderRequest) {
    Order order=new Order();
    order.setId(orderRequest.getId());
    order.setSellerId(orderRequest.getSellerId());
    order.setAddress(orderRequest.getAddress());

    return ResponseEntity.ok(this.orderRepository.save(order));

}

这应该工作

您可以使用名为 Lombok 的依赖项...非常有用:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>{Version what you need}</version>
    </dependency>

Lombok 将通过仅选择最终字段来使用此注释创建一个构造函数。

添加后你可以这样做:

@RestController
@RequiredArgsConstructor
public class OrderController {


  private final OrderRepository orderRepository;


  @GetMapping("/Order")
  public ResponseEntity<List<Order>> getAllOrders() {
    return ResponseEntity.ok(this.orderRepository.findAll());

  }

  @PostMapping("/Order")
  public ResponseEntity<Order> createOrders(@RequestBody Order 
  orderRequest) {
     Order order=new Order();
     order.setId(orderRequest.getId());
     order.setSellerId(orderRequest.getSellerId());
     order.setAddress(orderRequest.getAddress());

     return ResponseEntity.ok(this.orderRepository.save(order));

  }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM