MyBatis-Spring-boot-starter 1.2版本的变更内容

我整理了2017年1月2日发布的版本1.2的变更内容。

补充一下,

    • mybatis-spring-boot-starterの使い方については、こちら(バージョン1.2対応済み)

 

    mybatis-spring-boot-starter 1.0から1.1の変更点については、こちら

请看这个。

注意:

2017年4月10日:追加备注
添加了版本1.2.1的更改内容。

2017年8月21日:追加备注
添加了版本1.2.2的更改内容。

依赖库的必需版本

使用1.2版本时,以下版本是必需的。

    • MyBatis 3.4+

 

    • Mybatis-Spring 1.3+

 

    Spring 4.3+

需要使用Spring 4.3+和Spring Boot 1.4+。

在1.2版本中,由于使用了从Spring 4.3添加的ObjectProvider来进行自动配置,所以需要使用基于Spring 4.3的Spring Boot 1.4+版本。
需要注意的是,如果在加载Mapper文件时使用通配符(例如:mybatis.mapper-locations=classpath*:**/mapper/*.xml),如果不使用Spring Boot 1.4.3+(Spring 4.3.5+),可能会遇到重复加载Mapper文件的问题(gh-108)。

注意:
如果在Spring 4.2(Spring Boot 1.3)上使用,请使用版本1.1.1。

图书馆版本

在1.2版本中,以下库的版本已经进行了更新。

ライブラリ名1.1.1のバージョン1.2.0のバージョン1.2.1のバージョン1.2.2のバージョンMyBatis3.4.03.4.23.4.43.4.5MyBatis Spring1.3.01.3.11.3.11.3.1Spring Boot1.3.3.RELEASE1.4.3.RELEASE1.4.5.RELEASE1.4.7.RELEASE

工件的依赖结构 de

在1.2版本中,已经对mybatis-spring-boot-starter和mybatis-spring-boot-autoconfigure的依赖结构进行了重新评估。这是回应Spring Boot核心提交者 Nicoll先生的建议而进行的调整。

在1.1版本中,具体而言,

[INFO] +- org.mybatis.spring.boot:mybatis-spring-boot-starter:jar:1.1.1:compile
[INFO] |  \- org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:jar:1.1.1:compile
[INFO] |     +- org.mybatis:mybatis:jar:3.4.0:compile
[INFO] |     +- org.mybatis:mybatis-spring:jar:1.3.0:compile
[INFO] |     +- org.springframework.boot:spring-boot:jar:1.4.3.RELEASE:compile
[INFO] |     |  \- org.springframework:spring-context:jar:4.3.5.RELEASE:compile
[INFO] |     |     +- org.springframework:spring-aop:jar:4.3.5.RELEASE:compile
[INFO] |     |     +- org.springframework:spring-beans:jar:4.3.5.RELEASE:compile
[INFO] |     |     \- org.springframework:spring-expression:jar:4.3.5.RELEASE:compile
[INFO] |     +- org.springframework.boot:spring-boot-autoconfigure:jar:1.4.3.RELEASE:compile
[INFO] |     \- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.3.RELEASE:compile
[INFO] |        +- org.springframework.boot:spring-boot-starter:jar:1.4.3.RELEASE:compile
[INFO] |        |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.4.3.RELEASE:compile
[INFO] |        |  |  +- ch.qos.logback:logback-classic:jar:1.1.8:compile
[INFO] |        |  |  |  \- ch.qos.logback:logback-core:jar:1.1.8:compile
[INFO] |        |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.22:compile
[INFO] |        |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.22:compile
[INFO] |        |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.22:compile
[INFO] |        |  \- org.yaml:snakeyaml:jar:1.17:runtime
[INFO] |        +- org.apache.tomcat:tomcat-jdbc:jar:8.5.6:compile
[INFO] |        |  \- org.apache.tomcat:tomcat-juli:jar:8.5.6:compile
[INFO] |        \- org.springframework:spring-jdbc:jar:4.3.5.RELEASE:compile
[INFO] |           \- org.springframework:spring-tx:jar:4.3.5.RELEASE:compile

在版本1.2中有所变化。

[INFO] +- org.mybatis.spring.boot:mybatis-spring-boot-starter:jar:1.2.0:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.4.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:1.4.3.RELEASE:compile
[INFO] |  |  |  \- org.springframework:spring-context:jar:4.3.5.RELEASE:compile
[INFO] |  |  |     +- org.springframework:spring-aop:jar:4.3.5.RELEASE:compile
[INFO] |  |  |     \- org.springframework:spring-expression:jar:4.3.5.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.4.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.4.3.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.8:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.8:compile
[INFO] |  |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.22:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.22:compile
[INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.22:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
[INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.3.RELEASE:compile
[INFO] |  |  +- org.apache.tomcat:tomcat-jdbc:jar:8.5.6:compile
[INFO] |  |  |  \- org.apache.tomcat:tomcat-juli:jar:8.5.6:compile
[INFO] |  |  \- org.springframework:spring-jdbc:jar:4.3.5.RELEASE:compile
[INFO] |  |     +- org.springframework:spring-beans:jar:4.3.5.RELEASE:compile
[INFO] |  |     \- org.springframework:spring-tx:jar:4.3.5.RELEASE:compile
[INFO] |  +- org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:jar:1.2.0:compile
[INFO] |  +- org.mybatis:mybatis:jar:3.4.2:compile
[INFO] |  \- org.mybatis:mybatis-spring:jar:1.3.1:compile

已经发生了改变。
改变是什么呢… 在版本1.1中,mybatis-spring-boot-starter仅依赖于mybatis-spring-boot-autoconfigure,并且mybatis-spring-boot-autoconfigure具有与MyBatis、MyBatis-Spring和Spring Boot的依赖关系。乍一看似乎没有问题,但实际上,mybatis-spring-boot-autoconfigure实际上兼具了Starter的角色,这一点与Spring Boot提供的Starter和AutoConfigure的理念不同!!

這是關於Spring Boot應用程序的。如果僅添加AutoConfigure的組件,我們應該確保不會對Spring Boot應用程序產生任何副作用(即保持自動配置不生效)。Starter的作用就是一次性解決所有必需的依賴庫,以使自動配置生效!

警告:
如果您在依赖项中指定了mybatis-spring-boot-starter作为依赖项,则不会受到此更改的影响。但是,如果您指定了mybatis-spring-boot-autoconfigure,则在使用版本1.2时,请将其更改为使用mybatis-spring-boot-starter。

添加MyBatis配置属性

自 MyBatis 1.2 版本起,新增了一项新的属性(mybatis.configuration-properties),用于指定要替换占位符(${键名})的值。占位符可在 MyBatis 配置文件、Mapper XML 文件、SQL 定义的替换变量以及部分注解的值中使用。

只需要一种方式,原文为:可在属性中指定的格式有。

mybatis.configuration-properties.キー名=キー値

那么…例如,

mybatis.configuration-properties.db.schema=prod

通过将`${db.schema}`定义为这样的方式,可以引用它。

这个可以在MyBatis配置文件中表达为

<properties>
    <property name="db.schema" value="prod" />
</properties>

在使用MyBatis Spring提供的org.mybatis.spring.SqlSessionFactoryBean时,可以表示为

@Bean
SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
    SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
    factoryBean.setDataSource(dataSource);
    Properties props = new Properties();
    props.setProperty("db.schema", "prod");
    factoryBean.setConfigurationProperties(props);
    return factoryBean;
}

或者

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configurationProperties">
        <props>
            <prop key="db.schema">prod</prop> 
        </props>
    </property>
</bean>

成为。
(ní

注意:
实际上,在版本1.1.1中,您可以通过以下定义来实现相同的功能。这种方法可以在版本1.2中使用,并且如果存在相同的键名,则优先使用在版本1.2中添加的mybatis.configuration-properties指定的值。

src/main/resources/application.properties
mybatis.configuration.variables.db.schema=prod

例如,您可以在mybatis.configuration.variables中定义与环境无关的值(或默认值),然后在每个配置文件(每个环境)中使用mybatis.configuration-properties来覆盖环境相关值。

与IDE的配合:与IDE协同工作时的mybatis.configuration属性键

在1.1版本中,已经支持使用属性(mybatis.configuration.*)配置org.apache.ibatis.session.Configuration,但在STS和IntelliJ IDEA等IDE上,属性键未能自动完成。这个问题将在1.2版本中得到解决。

注意:
然而,现在又出现了另一个问题(gh-127),即属性键重复的问题……
这似乎是maven-bundle-plugin在构建时的一个bug,预计将在1.2.1版本中解决。

2017/4/10: 补充说明
属性键重复的问题已经在1.2.1版本中解决了!!

添加ConfigurationCustomizer接口

请参考1.3版本的更改内容。

我要添加 @MybatisTest(mybatis-spring-boot-starter-test)。

请查阅1.3版本的变更内容。

广告
将在 10 秒后关闭
bannerAds