@Test public void testFactoryBeanLifecycle() throws Exception { EmbeddedDatabaseFactoryBean bean = new EmbeddedDatabaseFactoryBean(); ResourceDatabasePopulator populator = new ResourceDatabasePopulator(resource("db-schema.sql"), resource("db-test-data.sql")); bean.setDatabasePopulator(populator); bean.afterPropertiesSet(); DataSource ds = bean.getObject(); JdbcTemplate template = new JdbcTemplate(ds); assertEquals("Keith", template.queryForObject("select NAME from T_TEST", String.class)); bean.destroy(); }
@Override public void destroy() { if (this.databaseCleaner != null && getDataSource() != null) { DatabasePopulatorUtils.execute(this.databaseCleaner, getDataSource()); } shutdownDatabase(); }
@Override public void afterPropertiesSet() { initDatabase(); }
@Bean @ConditionalOnMissingBean(DataSource.class) public EmbeddedDatabaseFactoryBean dataSource() { EmbeddedDatabaseFactoryBean factoryBean = new EmbeddedDatabaseFactoryBean(); factoryBean.setDatabaseType(EmbeddedDatabaseType.H2); factoryBean.setDatabaseName("spring-labs"); factoryBean.setDatabasePopulator(databasePopulator()); return factoryBean; }
@Override @Nullable public DataSource getObject() { return getDataSource(); }
@Bean @Profile("hsqldb") public EmbeddedDatabaseFactoryBean dataSource() { EmbeddedDatabaseFactoryBean embeddedDatabaseFactoryBean = new EmbeddedDatabaseFactoryBean(); embeddedDatabaseFactoryBean.setDatabaseType(EmbeddedDatabaseType.HSQL); return embeddedDatabaseFactoryBean; } }
@Test public void createAndDestroyNestedWithHsql() throws Exception { ClassPathXmlApplicationContext context = context("jdbc-destroy-nested-config.xml"); try { DataSource dataSource = context.getBean(DataSource.class); JdbcTemplate template = new JdbcTemplate(dataSource); assertNumRowsInTestTable(template, 1); context.getBean(EmbeddedDatabaseFactoryBean.class).destroy(); expected.expect(BadSqlGrammarException.class); // Table has been dropped assertNumRowsInTestTable(template, 1); } finally { context.close(); } }
public DataSource getObject() { return getDataSource(); }
@Test public void createAndDestroyNestedWithH2() throws Exception { ClassPathXmlApplicationContext context = context("jdbc-destroy-nested-config-h2.xml"); try { DataSource dataSource = context.getBean(DataSource.class); JdbcTemplate template = new JdbcTemplate(dataSource); assertNumRowsInTestTable(template, 1); context.getBean(EmbeddedDatabaseFactoryBean.class).destroy(); expected.expect(BadSqlGrammarException.class); // Table has been dropped assertNumRowsInTestTable(template, 1); } finally { context.close(); } }
@Override public void destroy() { if (this.databaseCleaner != null && getDataSource() != null) { DatabasePopulatorUtils.execute(this.databaseCleaner, getDataSource()); } shutdownDatabase(); }
@Override @Nullable public DataSource getObject() { return getDataSource(); }
public void afterPropertiesSet() { initDatabase(); }
public void destroy() { if (this.databaseCleaner != null) { DatabasePopulatorUtils.execute(this.databaseCleaner, getDataSource()); } shutdownDatabase(); }
@Override public void afterPropertiesSet() { initDatabase(); }