Wir haben die am 2. Januar 2017 veröffentlichten 1.2 Änderungen zusammengefasst.
Darüber hinaus sollte beachtet werden
Bitte sehen Sie.
Note:
** 10.04.2017: Nachtrag ** Änderungen in Version 1.2.1 hinzugefügt.
** 21.08.2017: Nachtrag ** Änderungen in Version 1.2.2 hinzugefügt.
Zur Verwendung von Version 1.2 sind die folgenden Versionen erforderlich.
In Version 1.2 ist Spring Boot 1.4+ erforderlich, das auf Spring 4.3 basiert, da für die automatische Konfiguration der aus Spring 4.3 hinzugefügte "ObjectProvider" verwendet wird. Wenn Sie beim Lesen der Mapper-Datei Platzhalter verwenden (z. B. mybatis.mapper-location = classpath *: ** / mapper / *. Xml), Spring Boot 1.4.3+ (Spring 4.3). Wenn Sie 5+ nicht verwenden, tritt möglicherweise das Problem auf, dass Mapper-Dateien doppelt gelesen werden (gh-108). ..
Note: Verwenden Sie bei Verwendung von Spring 4.2 (Spring Boot 1.3) bitte Version 1.1.1.
In Version 1.2 wurden die folgenden Bibliotheksversionen aktualisiert.
Bibliotheksname | 1.1.1 Version | 1.2.Version von 0 | 1.2.1 Version | 1.2.2 Versionen |
---|---|---|---|---|
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 wurde die Abhängigkeitsstruktur von "mybatis-spring-boot-Starter" und "mybatis-spring-boot-autoconfigure" überprüft. Dies ist eine Antwort auf einen Kommentar von Stéphane Nicoll, einem der Hauptverantwortlichen von Spring Boot.
Insbesondere ... 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
In Version 1.2 ist jedoch
[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
Es ist geworden. Was sich geändert hat, ist ... In Version 1.1 hängt "mybatis-spring-boot-Starter" nur von "mybatis-spring-boot-autoconfigure" ab, und "mybatis-spring-boot-autoconfigure" ist MyBatis. Es hatte eine Abhängigkeit von MyBatis-Spring und Spring Boot. Auf den ersten Blick scheint es kein Problem zu geben, aber tatsächlich spielt "mybatis-spring-boot-autoconfigure" auch die Rolle des Starters, und dieser Teil unterscheidet sich von der Idee von Starter und AutoConfigure, die von Spring Boot bereitgestellt werden !! Es war das.
Dies ist ... Wenn Sie nur das AutoConfigure-Artefakt ** hinzufügen, sollten Sie verhindern, dass die Spring Boot-Anwendung Nebenwirkungen hat (die Autokonfiguration wird unwirksam), und die Autokonfiguration aktivieren. Starter ist die Rolle, um die dafür erforderlichen abhängigen Bibliotheken auf einmal zu lösen! !! Es scheint so.
Warning: Wenn Sie als abhängiges Artefakt "mybatis-spring-boot-Starter" angeben, sind Sie von dieser Änderung nicht betroffen, wenn Sie jedoch "mybatis-spring-boot-autoconfigure" angeben , Bitte ändern Sie, um "mybatis-spring-boot-Starter" anzugeben, wenn Sie Version 1.2 verwenden.
Ab Version 1.2 wurde eine neue Eigenschaft (mybatis.configuration-properties
) hinzugefügt, um den Wert anzugeben, der durch den Platzhalter ersetzt werden soll ($ {Schlüsselname}
). Platzhalter können in MyBatis-Konfigurationsdateien, Mapper-XML-Dateien, SQL-definierten Substitutionsvariablen und einigen Anmerkungswerten verwendet werden.
Das Format, das in der Eigenschaft angegeben werden kann, ist
mybatis.configuration-properties.Schlüsselname=Schlüsselwert
Und ... zum Beispiel
src/main/resources/application.properties
mybatis.configuration-properties.db.schema=prod
Wenn Sie es als definieren, können Sie es wie "$ {db.schema}" referenzieren.
Dies ist ... Wird in der MyBatis-Einstellungsdatei ausgedrückt
mybatis-config.xml
<properties>
<property name="db.schema" value="prod" />
</properties>
Ausgedrückt mit org.mybatis.spring.SqlSessionFactoryBean
von 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>
Wird sein.
Note: Eigentlich ... In Version 1.1.1 kann dasselbe erreicht werden, indem wie folgt definiert wird. Diese Methode kann auch in Version 1.2 verwendet werden. Wenn derselbe Schlüsselname vorhanden ist, hat der in Version 1.2 angegebene Wert in "mybatis.configuration-properties" Vorrang.
mybatis.configuration.variables.db.schema=prod
Zum Beispiel ... Definieren Sie umgebungsunabhängige Werte (oder Standardwerte) in
mybatis.configuration.variables
und verwenden Siemybatis.configuration-properties
in der Eigenschaftendatei für jedes Profil (für jede Umgebung). Sie können es auch verwenden, um umgebungsabhängige Werte zu überschreiben.
mybatis.configuration
und IDEAb Version 1.1 wird die Eigenschaft (mybatis.configuration. *
) Zum Konfigurieren von org.apache.ibatis.session.Configuration
unterstützt, der Eigenschaftsschlüssel wird jedoch für IDEs wie STS und IntelliJ IDEA vervollständigt. Es wurde nicht gezielt. Dieser Fehler wird in Version 1.2 behoben.
Note: Allerdings ... diesmal gibt es ein anderes Problem (gh-127), dass der Eigenschaftsschlüssel dupliziert wurde ... Dies scheint ein Fehler im
Maven-Bundle-Plugin
zu sein, das zur Erstellungszeit verwendet wurde und in Version 1.2.1 behoben wird.** 10.04.2017: Nachtrag ** Das Problem mit doppelten Eigenschaftsschlüsseln wurde in Version 1.2.1 behoben! !!
[Änderungen 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).
Änderungen in Version 1.3 Bitte beziehen Sie sich auf.
Recommended Posts