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
package com.example.demo; import java.time.LocalDate; import java.util.List; import domain.model.ReservableRoom; import domain.room.RoomService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("rooms") public class RoomsController { @Autowired RoomService roomService; @RequestMapping(value = "{date}", method = RequestMethod.GET) String listRooms(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @PathVariable("date") LocalDate date, Model model) { List<ReservableRoom> rooms = roomService.findReservableRooms(date); model.addAttribute("rooms", rooms); return "room/listRooms"; } @RequestMapping(method = RequestMethod.GET) String listRooms(Model model) { LocalDate today = LocalDate.now(); model.addAttribute("date", today); return listRooms(today, model); } }
RoomService
package domain.room; import java.time.LocalDate; import java.util.List; import domain.model.ReservableRoom; import domain.repository.room.ReservableRoomRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional public class RoomService { @Autowired ReservableRoomRepository reservableRoomRepository; @Autowired MeetingRoomRepository meetingRoomRepository; public List<ReservableRoom> findReservableRooms(LocalDate date) { return reservableRoomRepository.findByReservableRoomId_reservedDateOrderByReservableRoomId_roomIdAsc(date); } // public MeetingRoom findMeetingRoom(Integer roomId) { // return meetingRoomRepository.findOne(roomId); // } }
教材サンプルソースコードはダウンロード可能なのですが公共の場にリンクを貼っていいのか判断がつきませんのでエラーに該当するクラスのみソースコードを貼っておきます。
追加情報:パッケージエクスプローラのキャプチャ追加
まだ回答がついていません
会員登録して回答してみよう