Tôi gặp lỗi khi chạy lớp chính.Xem xét xác định loại đậu 'dịch vụ' trong cấu hình của bạn [Khởi động mùa xuân]
Lỗi:
Action:
Consider defining a bean of type 'seconds47.service.TopicService' in your configuration.
Description:
Field topicService in seconds47.restAPI.topics required a bean of type 'seconds47.service.TopicService' that could not be found
giao diện TopicService:
public interface TopicService {
TopicBean findById(long id);
TopicBean findByName(String name);
void saveTopic(TopicBean topicBean);
void updateTopic(TopicBean topicBean);
void deleteTopicById(long id);
List<TopicBean> findAllTopics();
void deleteAllTopics();
public boolean isTopicExist(TopicBean topicBean);
}
điều khiển:
@RestController
public class topics {
@Autowired
private TopicService topicService;
@RequestMapping(path = "/new_topic2", method = RequestMethod.GET)
public void new_topic() throws Exception {
System.out.println("new topic JAVA2");
}
}
lớp thực hiện:
public class TopicServiceImplementation implements TopicService {
@Autowired
private TopicService topicService;
@Autowired
private TopicRepository topicRepository;
@Override
public TopicBean findById(long id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TopicBean findByName(String name) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void saveTopic(TopicBean topicBean) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void updateTopic(TopicBean topicBean) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void deleteTopicById(long id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public List<TopicBean> findAllTopics() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void deleteAllTopics() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public boolean isTopicExist(TopicBean topicBean) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
Phần còn lại của lớp học cũng được xác định. Tôi không biết tại sao lại ném nó mặc dù tuyên bố componentScan
trong lớp chính.
lớp chính:
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
@ComponentScan(basePackages = {"seconds47"})
@EnableJpaRepositories("seconds47.repository")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
tôi có các gói của tôi như thế này:
seconds47
seconds47.beans
seconds47.config
seconds47.repository
seconds47.restAPI
seconds47.service
Liệu các lớp 'TopicServiceImplementation' có chú thích '@ Component'? Nếu không, bạn phải thêm nó vào lớp, để Spring có thể nhận ra nó như là một bean. – dunni
@dunni Trong khởi động vào mùa xuân, chú thích '@ Component' không bắt buộc phải được quét tự động bởi springboot không giống như springmvc – kittu
Nếu bạn không thêm bất kỳ chú thích nào trên lớp, nó sẽ không được quét bởi vì bạn chưa đánh dấu nó là hạt đậu. Nếu bạn không tin tôi, hãy đọc tài liệu. – dunni