1.配置所需的依賴包
<parent>
<groupId> org.springframework.boot </groupId >
<artifactId> spring-boot-starter-parent </artifactId>
<version>1.4.1.RELEASE</version>
</parent >
<dependencies>
<!--liquibase依賴-->
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId> org.springframework.boot</groupId >
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
</dependencies>
注意,spring-boot-starter-data-jpa這個包也要引入,否則在配置liqiubase的配置類的時候,無法注入Datasource;
2.配置application.yml文件
這裏使用了單獨的數據源,並沒有在liqiubase直接配置數據庫
spring:
datasource:
url: jdbc:mysql://localhost:3306/liqiubase?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: <your password>
driver-class-name: com.mysql.jdbc.Driver
liquibase:
change-log: classpath:liquibase/master.xml
enabled: true
drop-first: false
3.添加liqiubase的配置類
import liquibase.integration.spring.SpringLiquibase;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
@EnableConfigurationProperties(LiquibaseProperties.class)
public class LiquibaseConfig {
@Bean
public SpringLiquibase liquibase(DataSource dataSource,LiquibaseProperties liquibaseProperties) {
SpringLiquibase springLiquibase = new SpringLiquibase();
springLiquibase.setDataSource(dataSource);
springLiquibase.setChangeLog(liquibaseProperties.getChangeLog());
springLiquibase.setShouldRun(liquibaseProperties.isEnabled());
springLiquibase.setDropFirst(liquibaseProperties.isDropFirst());
return springLiquibase;
}
}
注意,這裏使用的直接啓用了LiquibaseProperties的配置類,該類聲明瞭部分配置的默認值,需要覆蓋的話就在application裏面配置覆蓋即可,注意,該類是直接以liqiubase開頭的配置,並非在spring的第二級,這裏需注意下:
4.啓動類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}