일단 시간이 없으니 볼론으로 들어가서 mysql을 embedded하는 건 다음과 같다. (참고로 코드는 kotlin이다.)
일단 라이브러리 추가.
일단 라이브러리 추가.
compile("com.wix:wix-embedded-mysql:4.2.0")
그리고 다음 configration을 추가
@Profile(value = ["default"])
@Component
@EnableConfigurationProperties(value = [DataSourceProperties::class])
class DefaultEmbeddedMysql(
private val properties: DataSourceProperties
) {
private val log = LoggerFactory.getLogger(javaClass)
private lateinit var mysqlServer: EmbeddedMysql
@PostConstruct
@Throws(IOException::class)
fun start() {
log.info("Initializing embedded Mysql instance")
val uri = URI.create(properties.url.substring(5))
val config = MysqldConfig.aMysqldConfig(Version.v5_7_19)
.withCharset(Charset.UTF8)
.withPort(uri.port)
.withTimeZone(TimeZone.getTimeZone("Asia/Seoul"))
.withUser(properties.username, properties.password)
.build()
val path = uri.path.removePrefix("/")
mysqlServer = EmbeddedMysql.anEmbeddedMysql(config)
.addSchema(SchemaConfig.aSchemaConfig(path).withCharset(Charset.UTF8).build())
.start()
}
@PreDestroy
@Throws(InterruptedException::class)
fun stop() {
mysqlServer.stop()
}
@Bean
fun dataSource(): DataSource {
return properties.initializeDataSourceBuilder().build()
}
}
이러면 springboot가 뜰 때 mysql을 다운받고 mysqld로 mysql을 기동하는 걸 로그로 볼 수 있다.
local에서만 사용하도록 꼭 @Profile을 추가해주자.
댓글 없음:
댓글 쓰기