Spring boot 2.1.0にてWebアプリケーションを勉強中です。その中で、ビルドエラーが発生し対処が不明のためご意見を頂戴したいと思っております。
アプリケーション仕様:部屋予約サイト
//エラーログ Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2018-11-23 03:43:45.939 ERROR 23104 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Field roomService in com.example.demo.RoomsController required a bean of type 'domain.room.RoomService' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true)
RoomsControllerにRoomServiceのBean定義がないと言われていると解釈していますがRoomsControllerには**@Autowired**アノテーションがついているのでBeanアノテーションは必要ないかと思っているですが、そもそもエラーの解釈が違い、違うアプローチが必要なのでしょうか?
RoomsController
1package com.example.demo; 2 3import java.time.LocalDate; 4import java.util.List; 5import domain.model.ReservableRoom; 6import domain.room.RoomService; 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.format.annotation.DateTimeFormat; 9import org.springframework.stereotype.Controller; 10import org.springframework.ui.Model; 11import org.springframework.web.bind.annotation.PathVariable; 12import org.springframework.web.bind.annotation.RequestMapping; 13import org.springframework.web.bind.annotation.RequestMethod; 14 15@Controller 16@RequestMapping("rooms") 17public class RoomsController { 18 @Autowired 19 RoomService roomService; 20 21 @RequestMapping(value = "{date}", method = RequestMethod.GET) 22 String listRooms(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @PathVariable("date") LocalDate date, Model model) { 23 List<ReservableRoom> rooms = roomService.findReservableRooms(date); 24 model.addAttribute("rooms", rooms); 25 return "room/listRooms"; 26 } 27 28 @RequestMapping(method = RequestMethod.GET) 29 String listRooms(Model model) { 30 LocalDate today = LocalDate.now(); 31 model.addAttribute("date", today); 32 return listRooms(today, model); 33 } 34}
RoomService
1package domain.room; 2 3import java.time.LocalDate; 4import java.util.List; 5import domain.model.ReservableRoom; 6import domain.repository.room.ReservableRoomRepository; 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.stereotype.Service; 9import org.springframework.transaction.annotation.Transactional; 10 11@Service 12@Transactional 13public class RoomService { 14 @Autowired 15 ReservableRoomRepository reservableRoomRepository; 16 @Autowired 17 MeetingRoomRepository meetingRoomRepository; 18 19 public List<ReservableRoom> findReservableRooms(LocalDate date) { 20 return reservableRoomRepository.findByReservableRoomId_reservedDateOrderByReservableRoomId_roomIdAsc(date); 21 } 22 23// public MeetingRoom findMeetingRoom(Integer roomId) { 24// return meetingRoomRepository.findOne(roomId); 25// } 26}
教材サンプルソースコードはダウンロード可能なのですが公共の場にリンクを貼っていいのか判断がつきませんのでエラーに該当するクラスのみソースコードを貼っておきます。
回答2件
あなたの回答
tips
プレビュー