中のエラーは、私は、単純なハードコードされたサービスと非常にシンプルな春のブートアプリケーションを持っているが、それは動作していないと、それは私にField userService in hello.UserController required a bean of type 'services.UserService' that could not be found
エラーを与えています。ここに私のアプリケーションクラス、コントローラ、サービスクラスがあります。私は@Autowired
注釈経由UserServiceのを注入しようとすると問題があります。私はこれが既にどこかで答えられていると思うが、私は関連する答えを見つけることができない。私を助けてください、または正しい答えに私を指摘してください。おかげ必要なBeanがコントローラで見つからない - 依存性注入
コントローラ
@RestController
@EnableAutoConfiguration
@RequestMapping("/api")
public class UserController {
public static Logger logger = LoggerFactory.getLogger(UserController.class);
@Autowired
UserService userService;
@RequestMapping(value = "/user/", method = RequestMethod.GET)
public ResponseEntity<List<User>> listAllUsers() {
List<User> users = userService.getAllUsers();
if(users.isEmpty()) return new ResponseEntity(HttpStatus.NO_CONTENT);
return new ResponseEntity<List<User>>(users,HttpStatus.OK);
}
}
アプリケーション
@SpringBootApplication(scanBasePackageClasses =
{UserController.class})
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
Serviceクラス
@Service
public class UserService {
List<User> users;
public UserService() {
this.users = new ArrayList<>();
users.add(new User(2, "Altaire", 23));
users.add(new User(3, "Ezio", 21));
users.add(new User(4, "Enzo", 23));
}
public User getUser(int id) {
for (User user : users) {
if (user.getId() == id) {
return user;
}
}
return null;
}
public List<User> getAllUsers() {
return users;
}
public void addUser(User user) {
users.add(user);
}
public void deleteUser(int id) {
for (User user : users) {
if (user.getId() == id) {
users.remove(user);
}
}
}
public void updateUser(int id, String name, int age) {
for (User user : users) {
if (user.getId() == id) {
user.setName(name);
user.setAge(age);
}
}
}
}
パッケージと輸入品も重要です。 – davidxxx
サービスクラスは、モジュールという名前のサービスであるとコントローラとApplicationクラスは、(少なくとも、ではないJavaの9前)は、Javaでのモジュールのようなものはありません別のモジュール – Ezio
です。なぜあなたはあなたがしなければならないことをやっていないのですか?そのパッケージとimport文を使ってコードを投稿してください。 –