嵌入式數據源作為應用的一部分運行,非常適合在開發和測試環境中使用,但是不適合用於生產環境。因為在使用嵌入式數據源的情況下,你可以在每次應用啟動或者每次運行單元測試之前初始化測試數據。
使用Spring的jdbc名字空間配置嵌入式數據源非常簡單,下列代碼顯示了如何使用jdbc名字空間配置嵌入式的H2數據庫,並配置需要初始化的數據。
<jdbc:embedded-database id="dataSource" type="H2"> <jdbc:script location="classpath*:schema.sql" /> <jdbc:script location="classpath*:test-data.sql" /> </jdbc:embedded-database>
<jdbc:embedded-database>的type屬性設置為H2表明嵌入式數據庫的類型是H2數據庫(確保引入了H2的依賴庫)。在<jdbc:embedded-database>配置中,可以配置多個<jdbc:script>元素,用於設置和初始化數據庫:在這個例子中,schema.sql文件中包含用於創建數據表的關系;test-data.sql文件中用於插入測試數據。
如果你使用JavaConfig,則可以使用EmbeddedDatabaseBuilder構建嵌入式數據源:
@Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2) .addScript("classpath*:schema.sql") .addScript("classpath*:test-data.sql") .build(); }
可以看出,setType()方法的作用等同於<jdbc:embedded-database>元素的type屬性,addScript()方法的作用等同於<jdbc:script>元素。