ดังนั้นฉันจึงเรียนรู้ฤดูใบไม้ผลิในสองสามสัปดาห์ตามบทช่วยสอนนี้
ทุกอย่างเป็นไปด้วยดีจนกระทั่งฉันพยายามรวมเข้ากับ mongodb ดังนั้นฉันจึงทำตามบทแนะนำนี้
แต่การปฏิบัติของฉันบางส่วนยังคงใช้แบบแรก โครงสร้างไดเร็กทอรีโปรเจ็กต์ของฉันจึงเป็นแบบนี้
src/
├── main/
│ └── java/
| ├── model/
| | └── User.java
| ├── rest/
| | ├── Application.java
| | ├── IndexController.java
| | └── UsersController.java
| └── service/
| └── UserService.java
└── resources/
└── application.properties
นี่คือไฟล์model / User.javaของฉัน
package main.java.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection="user")
public class User {
private int age;
private String country;
@Id
private String id;
private String name;
public User() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
}
นี่คือไฟล์ที่เหลือของฉัน/ UsersController.java
package main.java.rest;
import java.util.List;
import main.java.service.UserService;
import main.java.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/users")
public class UsersController {
@Autowired
UserService userService;
@RequestMapping(method = RequestMethod.GET)
public List<User> getAllUsers() {
return userService.findAll();
}
}
นี่คือไฟล์service / UserService.javaของฉัน
package main.java.service;
import java.util.List;
import main.java.model.User;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface UserService extends MongoRepository<User, String> {
public List<User> findAll();
}
ฉันสามารถรวบรวมได้ (ฉันใช้ gradle ในการรวบรวมเพราะฉันกำลังทำตามบทช่วยสอน) แต่เมื่อฉันเรียกใช้ไฟล์ jar มันทำให้เกิดข้อผิดพลาด
แอปพลิเคชันไม่สามารถเริ่มได้
คำอธิบาย:
ฟิลด์ userService ใน main.java.rest.UsersController ต้องการ bean ชนิด 'main.java.service.UserService' ที่ไม่พบ
หนังบู๊:
พิจารณากำหนดชนิด bean 'main.java.service.UserService' ในคอนฟิกูเรชันของคุณ
ไม่แน่ใจว่าเกิดอะไรขึ้นฉันเริ่ม googling และพบว่าฉันจำเป็นต้องรวมBeans.xml
ไฟล์และลงทะเบียน userService ไว้ในนั้น ฉันทำอย่างนั้น แต่มันไม่ได้ผล ฉันใหม่มากสำหรับเรื่องนี้ดังนั้นฉันจึงไม่รู้ว่าเกิดอะไรขึ้น