We've summarized the 1.2 changes released on January 2, 2017.
In addition, it should be noted
Please see.
Note:
** 2017/4/10: Addendum ** Added changes in version 1.2.1.
** 2017/8/21: Addendum ** Added changes in version 1.2.2.
To use version 1.2, the following versions are required.
In version 1.2, Spring Boot 1.4+, which is based on Spring 4.3, is required because it uses ʻObjectProvideradded from Spring 4.3 for automatic configuration. If you are using a wildcard (eg
mybatis.mapper-locations = classpath *: ** / mapper / *. Xml`) when reading the Mapper file, Spring Boot 1.4.3+ (Spring 4.3. If you do not use 5+), you may encounter a problem that Mapper files are read in duplicate (gh-108) ..
Note: When using on Spring 4.2 (Spring Boot 1.3), please use version 1.1.1.
In version 1.2, the following library versions have been updated.
Library name | 1.1.1 version | 1.2.0 version | 1.2.1 version | 1.2.Version 2 |
---|---|---|---|---|
MyBatis | 3.4.0 | 3.4.2 | 3.4.4 | 3.4.5 |
MyBatis Spring | 1.3.0 | 1.3.1 | 1.3.1 | 1.3.1 |
Spring Boot | 1.3.3.RELEASE | 1.4.3.RELEASE | 1.4.5.RELEASE | 1.4.7.RELEASE |
In version 1.2, the dependency structure of mybatis-spring-boot-starter
and mybatis-spring-boot-autoconfigure
has been reviewed. This is in response to a comment from Stéphane Nicoll, one of the core committers of Spring Boot.
Specifically ... In version 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
However, in version 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
It has become.
What has changed is ... In version 1.1, mybatis-spring-boot-starter
depends only on mybatis-spring-boot-autoconfigure
, and mybatis-spring-boot-autoconfigure
is MyBatis, It had a dependency on MyBatis-Spring and Spring Boot. At first glance, it seems that there is no problem, but in effect mybatis-spring-boot-autoconfigure
also plays the role of Starter, and this part is different from the idea of Starter and AutoConfigure provided by Spring Boot !! It was that.
This is ... If you add only the AutoConfigure artifact **, you should prevent the Spring Boot application from having side effects (make the autoconfiguration inactive) and enable autoconfiguration. Starter is the role to solve the dependent libraries required to do this in one shot! !! It seems like that.
Warning: If you specify
mybatis-spring-boot-starter
as the dependent artifact, you will not be affected by this change, but if you specifymybatis-spring-boot-autoconfigure
, Please change to specifymybatis-spring-boot-starter
when using version 1.2.
mybatis.configuration-properties
Starting with version 1.2, a new property (mybatis.configuration-properties
) has been added to specify the value to replace with the placeholder ($ {key name}
). Placeholders can be used in MyBatis configuration files, Mapper XML files, SQL definition substitution variables, and some annotation values.
The format that can be specified in the property is
mybatis.configuration-properties.Key name=Key value
And ... for example
src/main/resources/application.properties
mybatis.configuration-properties.db.schema=prod
By defining as, you can refer to it like $ {db.schema}
.
This is ... Expressed in the MyBatis configuration file,
mybatis-config.xml
<properties>
<property name="db.schema" value="prod" />
</properties>
Expressed using ʻorg.mybatis.spring.SqlSessionFactoryBean` provided by MyBatis Spring,
@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;
}
or
<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>
Will be.
Note: Actually ... In version 1.1.1, the same thing can be achieved by defining as follows. This method can also be used in version 1.2, and if there is the same key name, the value specified in
mybatis.configuration-properties
added in version 1.2 takes precedence.mybatis.configuration.variables.db.schema=prod
For example ... Define environment-independent values (or default values) in
mybatis.configuration.variables
and usemybatis.configuration-properties
in the property file for each profile (for each environment). You can also use it to overwrite environment-dependent values.
mybatis.configuration
with IDEFrom version 1.1, the property (mybatis.configuration. *
) For configuring ʻorg.apache.ibatis.session.Configuration` is supported, but the property key is complemented on IDEs such as STS and IntelliJ IDEA. It was not targeted. This bug will be fixed in version 1.2.
Note: However ... this time there is another problem (gh-127) that the property key is duplicated ... This seems to be a bug in the
maven-bundle-plugin
used at build time and will be resolved in version 1.2.1.** 2017/4/10: Addendum ** The duplicate property key issue has been resolved in version 1.2.1! !!
ConfigurationCustomizer
interface[Changes in version 1.3](http://qiita.com/kazuki43zoo/items/3f94d2049d331f81e6f5#configurationcustomizer%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3% 82% A7% E3% 83% BC% E3% 82% B9% E3% 81% AE% E8% BF% BD% E5% 8A% A0).
@MybatisTest
(mybatis-spring-boot-starter-test)Changes in version 1.3 Please refer to.
Recommended Posts