Sql 配置Spring启动项目

Sql 配置Spring启动项目,sql,spring,spring-boot,h2,Sql,Spring,Spring Boot,H2,我的弹簧靴有问题。我创建了一个简单的项目示例来检查h2数据库是否工作。结果不起作用。 你能看看我做错了什么吗 数据库 public class DatabaseInit implements CommandLineRunner { @Autowired private UserRepository userRepository; @Override public void run(String... arg0) throws Exception {

我的弹簧靴有问题。我创建了一个简单的项目示例来检查h2数据库是否工作。结果不起作用。 你能看看我做错了什么吗

数据库

public class DatabaseInit implements CommandLineRunner {

    @Autowired
    private UserRepository userRepository;

    @Override
    public void run(String... arg0) throws Exception {

        userRepository.save(new User("Aonso"));
        userRepository.save(new User("Jordan"));
    }
}
控制器

@Controller
public class DemoController {

    @Autowired
    private UserRepository userRepository;

    @RequestMapping("/users")
    public Collection<User> getUsers(){
        return this.userRepository.findAll();

    }

}
用户位置

public interface UserRepository extends JpaRepository<User, Long> {

}

您正在为项目创建混合包结构。您的
@SpringBootApplication
位于
com.example
中,您的控制器位于
demo.controllers
中。Spring Boot在其包和所有子包中启用类路径扫描,除非配置不同。它找不到您的控制器(Spring Boot没有理由开始扫描整个类路径)


事实上,我们在本月Devxx的一次大学课程中解释了这一点(以及更多),因此您可以(在5:00左右查看组件扫描解释)。

如果您能分享实际项目,那么我们可以运行它并查看出了什么问题,这将更加有效。您粘贴的所有代码似乎都可以,但您没有粘贴最重要的代码:错误是什么?谢谢,您可以在此处下载项目:
public interface UserRepository extends JpaRepository<User, Long> {

}
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}