<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
疑惑於該項目沒有進行過數據庫連接,卻可以使用數據庫。原來他使用的不是我電腦上的mysql數據庫,而是從外部引入的H2數據庫
1、H2是一個用Java開發的嵌入式數據庫,它本身只是一個類庫,可以直接嵌入到應用項目中。
H2最大的用途在於可以同應用程序打包在一起發布,這樣可以非常方便地存儲少量結構化數據。
它的另一個用途是用於單元測試。啟動速度快,而且可以關閉持久化功能,每一個用例執行完隨即還原到初始狀態。
H2的第三個用處是作為緩存,作為NoSQL的一個補充。當某些場景下數據模型必須為關系型,可以拿它當Memcached使,作為后端MySQL/Oracle的一個緩沖層,緩存一些不經常變化但需要頻繁訪問的數據,比如字典表、權限表。不過這樣系統架構就會比較復雜了。


在該項目代碼中,未見有將JdbcTemplate注冊為Bean的代碼,卻直接使用了依賴注入。
按照spring的說法,因為我們使用了spring-jdbc,spring自動地創建了一個JdbcTemplate
但其中的原理是什么還是不明白破案::
在JdbcTemplateConfiguration類里,有注冊JdbcTemplate的bean對象。

而這個類的位置竟然是在