Для модульных тестов (назовите их интеграционными тестами, если хотите). Я настроил встроенную базу данных в моей конфигурации Spring следующим образом:
<jdbc:embedded-database id="dataSource" type="H2">
<jdbc:script location="classpath:schema_h2.sql" />
</jdbc:embedded-database>
Теперь, когда вы запускаете тесты из командной строки, они работают нормально, но я получаю некоторые ошибки в конце (безвредные, но раздражающие):
WARN 2013-03-25 12:20:22,656 [Thread-9] o.s.j.d.e.H2EmbeddedDatabaseConfigurer 'Could not shutdown embedded database'
org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-170]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) ~[h2-1.3.170.jar:1.3.170]
...
at org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean.destroy(EmbeddedDatabaseFactoryBean.java:65) [spring-jdbc-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:238) [spring-beans-3.2.1.RELEASE.jar:3.2.1.RELEASE]
Теперь подсказка, содержащаяся в исключении, в общем случае прекрасна, но как добавить этот атрибут во встроенный источник данных? Должен ли я расширять его, настроить его вручную, если можно так выразиться, добавить такие расширенные функции?