package org.springframework.issues.config; import javax.annotation.PreDestroy; import javax.sql.DataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; @Configuration public class RepositoryConfig { private static final Logger logger = LoggerFactory.getLogger(RepositoryConfig.class); private EmbeddedDatabase db; @Bean(name = "dataSource") DataSource dataSource() { logger.info("Setting up database"); EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); EmbeddedDatabase db = builder.setType(EmbeddedDatabaseType.HSQL). addScript("schema.sql"). addScript("test-data.sql").build(); this.db = db; return db; } @PreDestroy void destroy() { logger.info("Shutting down database"); this.db.shutdown(); } }