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);
}
}
|