所以,我在一周的夫妻一直在学习春天,一直跟随本教程
一切都很好,直到我试图整合它的MongoDB。所以我按照这个教程。
但我的做法是部分仍然使用的第一个。所以,我的项目目录结构是这样的。
src/
├── main/
│ └── java/
| ├── model/
| | └── User.java
| ├── rest/
| | ├── Application.java
| | ├── IndexController.java
| | └── UsersController.java
| └── service/
| └── UserService.java
└── resources/
└── application.properties
这是我的模型/ 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();
}
}
这是我的服务/ 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所需类型的豆“main.java.service.UserService”,可能不会被发现。
行动:
考虑配置中的定义类型的豆“main.java.service.UserService”。
不知道什么是错了,我开始使用Google四周,发现我需要包括Beans.xml
文件,并在注册userService。我这样做,但它不工作。我真的很新的这个,所以我真的有什么事情没有任何线索。
解决它。所以在默认情况下,该瀑布下的所有包@SpringBootApplication
声明将被扫描。
假设我的主类ExampleApplication
具有@SpringBootApplication
声明声明里面com.example.something
,那么落在下的所有组件com.example.something
进行扫描,而com.example.applicant
不会被扫描。
因此,有两种方法可以做到这一点基于此问题。用
@SpringBootApplication(scanBasePackages={
"com.example.something", "com.example.application"})
这样,应用程序将扫描所有指定的组件,但我认为,如果规模是越来越大了什么?
所以,我用的是第二种方法,通过重组我的包和它的工作!现在我的包结构变成这个样子。
src/
├── main/
│ └── java/
| ├── com.example/
| | └── Application.java
| ├── com.example.model/
| | └── User.java
| ├── com.example.controller/
| | ├── IndexController.java
| | └── UsersController.java
| └── com.example.service/
| └── UserService.java
└── resources/
└── application.properties
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句