2 回答

TA貢獻2039條經(jīng)驗 獲得超8個贊
另一種解決方法是實施 CommandLineRunner。
@Component
public class ConfigurationInitRunner implements CommandLineRunner {
@Autowired
Resources resources; // resources are retrieved from database.
@Override
public void run(String... strings) throws Exception {
Config.environment = resources.getWsaaEnv();
Config.validation = resources.getWsaaEnvValidation();
}
}

TA貢獻1785條經(jīng)驗 獲得超4個贊
我設法找到了解決方法。正如最新更新所述,使用@SqlGroup 無法實現(xiàn)所需的行為。我不得不使用以下方法,使用@BeforeClass 和@AfterClass:
@BeforeClass
public static void setUpBeforeClass() throws Exception {
DriverManagerDataSource dataSource = getDataSource();
Connection conn = dataSource.getConnection();
ScriptUtils.executeSqlScript(conn, new ClassPathResource("db_config.sql"));
ScriptUtils.executeSqlScript(conn, new ClassPathResource("consultas/setup_schema"));
ScriptUtils.executeSqlScript(conn, new ClassPathResource("db_init.sql"));
JdbcUtils.closeConnection(conn);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
Connection conn = getDataSource().getConnection();
ScriptUtils.executeSqlScript(conn, new ClassPathResource(
"db_teardown.sql"));
JdbcUtils.closeConnection(conn);
}
private static DriverManagerDataSource getDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driver);
return dataSource;
}
刪除了所有@SqlGroup 注釋。這種方法非常干凈,因為 ScriptUtils 不需要太多的依賴來運行。
添加回答
舉報