我运行主类时遇到错误.
错误:
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
TopicService接口:
public interface TopicService { TopicBean findById(long id); TopicBean findByName(String name); void saveTopic(TopicBean topicBean); void updateTopic(TopicBean topicBean); void deleteTopicById(long id); ListfindAllTopics(); void deleteAllTopics(); public boolean isTopicExist(TopicBean topicBean); }
控制器:
@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"); } }
实施班:
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 ListfindAllTopics() { 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. } }
其余的类也定义了.尽管componentScan
在主要班级宣布,但我不知道为什么它会抛出.
主要课程:
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class }) @ComponentScan(basePackages = {"seconds47"}) @EnableJpaRepositories("seconds47.repository") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
我的包裹是这样的:
seconds47 seconds47.beans seconds47.config seconds47.repository seconds47.restAPI seconds47.service
dunni.. 38
一个类必须具有@Component
注解或该推导(如@Service
,@Repository
等)被识别为组件扫描一个Spring bean.因此,如果您添加@Component
到课程中,它应该可以解决您的问题.
一个类必须具有@Component
注解或该推导(如@Service
,@Repository
等)被识别为组件扫描一个Spring bean.因此,如果您添加@Component
到课程中,它应该可以解决您的问题.
既然TopicService
是一个Service
类,那么您应该用对其进行注释@Service
,以便Spring为您自动装配该bean。像这样:
@Service public class TopicServiceImplementation implements TopicService { ... }
这样可以解决您的问题。