配置Spring启动项目

时间:2016-11-20 21:31:44

标签: sql spring spring-boot h2

我遇到弹簧靴问题。我创建了一个简单的项目示例来检查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();

    }

}

User.java

@Entity
public class User {

    @Id
    @GeneratedValue
    private long id;

    private String name;

    public User(){}

    public User(String name){
        this.name = name;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

UserRespository

public interface UserRepository extends JpaRepository<User, Long> {

}

应用

@SpringBootApplication
public class DemoApplication {

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

1 个答案:

答案 0 :(得分:2)

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

我们实际上是在本月在Devoxx举行的大学课程中解释了这个(以及更多),所以你可以want to check it out(检查组件扫描说明在5点左右)。