java - 如何初始化网络服务

标签 java spring spring-mvc

我正在尝试创建一个简单的网页,用于显示从网络服务接收的数据

@Service
@Transactional
public class TopicService {
    @Autowired
    private TopicRepository topicRepository;

    public int saveTopic(Topic topic){
        return topicRepository.save(topic).getId();

        }

    public Iterable<Topic> findAllTopics(){
        return topicRepository.findAll();

    }

    public Topic findTopicByID(Long id){
        return topicRepository.findOne(id);
    }

    public List<Topic> findTopicsByTag(Tag tag){
        return topicRepository.findAllByTopicTag(tag);
    }

}

主题存储库扩展了 CRUD 存储库

@Repository
public interface TopicRepository extends CrudRepository<Topic, Long>
{
    List<Topic> findAllByTopicTag(Tag currentTag);

} 

Controller 通过以下方式调用服务

@Controller
public class HomeController {

    private TopicService service;

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView home(Locale locale, Model model) 
    {
         Iterable<Topic> listTopic = service.findAllTopics();
         return new ModelAndView("home", "model", listTopic);
}
}

这个字符串

Iterable listTopic = service.findAllTopics();

抛出空指针异常。我猜是因为该服务尚未初始化。我怎样才能正确执行服务初始化?

最佳答案

您需要在 HomeController 中 Autowiring TopicService:

@Controller
public class HomeController {

    @Aurowired
    private TopicService service;

关于java - 如何初始化网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033065/

相关文章:

java - 连接在不活动时间后挂起

java - 一些 UTF-8 字符在我的 spring annotaded Controller 中显示为问号

java - 在实现接口(interface)的 Controller 上使用 @Controller 的 Spring-MVC 问题

java - 对一手扑克进行排序

java - 将 XML 文件编码为 Spring bean

java - 当我离开 Activity 并返回时,Activity 不断重启

java - Spring 框架的第一步

java - 未创建 Spring AspectJ 切入点

java - 使 PDF 文件上的问号可读

java - 在没有 web.xml 的情况下配置 servlet url-patterns