2016-11-20 209 views
0

我在彈簧啓動時遇到問題。我創建了一個簡單的項目示例來檢查h2數據庫是否工作。結果不起作用。 你能看看我做錯了什麼嗎?Config彈簧啓動項目

數據庫

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> { 

} 

App

@SpringBootApplication 
public class DemoApplication { 

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

如果你要分享實際的項目,那將會更加有效,這樣我們就可以運行它並查看出了什麼問題。你粘貼的所有代碼看起來都不錯,但你並沒有粘貼最重要的代碼:錯誤是什麼? –

+0

謝謝,你可以在這裏下載這個項目:https://www.dropbox.com/sh/qr29232jif8bbqb/AADLMgM7uszGjxHXYKhrqLLHa?dl=0 – CSantos

回答

0

您正在爲您的項目創建混合包結構。您的@SpringBootApplication位於com.example,您的控制器位於demo.controllers。除非配置不同,否則Spring Boot會在其包和所有子包中啓用類路徑掃描。它不會找到你的控制器(Spring Boot沒有理由開始掃描整個類路徑)。

我們實際上在本月在Devoxx給出的大學課程中解釋了這個(以及更多),因此您可以want to check it out(查看組件掃描說明的5:00左右)。