(Bien qu'il soit beaucoup tard ...) Voici un résumé des changements 2.0 publiés le 22 janvier 2019: sweat_smile:
Note: Depuis la sortie de la 2.0.1 en avril 2019, le contenu inclut les modifications de la 2.0.1.
La principale caractéristique de ce changement est qu'il s'agit de la première version qui nécessite Spring Boot 2.x (Spring Framework 5.x) ou supérieur, car il n'y a pas d'ajouts de fonctionnalités ou d'améliorations majeurs qui seront le point culminant de ce changement. (Bien que nous ayons fait quelques améliorations modestes ...).
De plus, il convient de noter
Veuillez également voir si nécessaire.
Note: À propos, la maintenance de Spring Boot 1.5.x (Spring Framework 4.3.x) se poursuit dans la version 1.3.x, mais il est annoncé que Spring Boot 1.5.x sera EOL d'ici 2019/8. Comme cela a été fait, la maintenance de la version 1.3.x sera finie en même temps (= la maintenance sera terminée en publiant la 1.3.5 à la fin).
Pour utiliser la version 2.0, les versions suivantes sont requises.
Java 8 ou supérieur est requis pour utiliser la version 2.0.
Dans la version 2.0, les versions de bibliothèque suivantes ont été mises à jour.
Nom de la bibliothèque | 1.3.2 versions | 2.0.Version de 0 | 2.0.1 version |
---|---|---|---|
MyBatis | 3.4.6 | 3.5.0 | 3.5.1 |
MyBatis Spring | 1.3.2 | 2.0.0 | 2.0.1 |
Spring Boot | 1.5.10.RELEASE | 2.0.8.RELEASE | 2.0.9.RELEASE |
Note: La version 1.3.3 publiée en même temps que la version 2.0.0 a été mise à jour vers Spring Boot 1.5.19.RELEASE, et la version 1.3.4 publiée en même temps que la version 2.0.1 a été mise à jour vers Spring Boot 1.5.20.
typeAliasesSuperType
dans la propriété de conjugaisontypeAliasesSuperType
est une option prise en charge par SqlSessionFactoryBean
fournie par Spring My Batis, et lors de l'analyse d'une classe à enregistrer en tant qu'alias de type sous le package spécifié, une classe qui peut être affectée à l'interface de classe spécifiée (=) Il est utilisé lorsque vous souhaitez analyser uniquement la classe héritée ou implémentée).
Par exemple ... Si vous souhaitez enregistrer uniquement la classe qui implémente l'interface com.example.data.Entity
sous le package spécifié dans l'alias de type,
src/main/resources/application.properties
mybatis.type-aliases-package=com.example
mybatis.type-aliases-super-type=com.example.data.Entity
Il peut être réalisé en spécifiant.
DataSource
injectableJusqu'à la version 1.3.x, si plusieurs DataSource
s sont enregistrés dans le conteneur DI sans spécifier le primaire (= il y a plusieursDataSource
s de candidats à l'injection avec par type. (Si c'est le cas), il y a eu une erreur dans la configuration automatique de MyBatis, mais depuis 2.0, elle a été modifiée de sorte que la configuration automatique de MyBatis est désactivée. Ce changement a fourni des commentaires sur des comportements tels que la configuration automatique pour JdbcTemplate
fourni par Spring Boot.
En ce qui concerne la prise en charge de la configuration automatique pour plusieurs sources de données, nous vous serions reconnaissants si vous pouviez créer un problème en tant que demande d'ajout de fonction (PR est également le bienvenu!).
[spring-boot-autoconfigure-processor
](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html#boot-features- custom-starter-module-autoconfigure) lit Spring Boot en lisant les informations d'annotation (méta-informations requises pour Auto-Configure) de la classe Auto-Configure à l'avance au moment de la compilation et en les sortant dans le fichier de propriétés. Il s'agit d'un artefact qui vise à accélérer le temps de démarrage de l'application en éliminant le processus de lecture des méta-informations de la classe au moment de l'exécution.
La version 1.3.x n'utilisait pas ce mécanisme, mais depuis la version 2.0, il a été amélioré pour utiliser ce mécanisme pour générer des méta-informations dans le fichier de propriétés.
À partir de la version 2.0.1, spécifiez des caractères génériques lors de la spécification du package de base à analyser dans les propriétés de configuration (mybatis.type-aliases-package
et mybatis.type-handlers-package
). Vous pourrez.
En particulier···
#Désignation du caractère générique compte tenu de la profondeur du paquet
mybatis.type-handlers-package=com.example.*.typehandler
#Spécification générique sans être conscient de la profondeur du paquet
mybatis.type-handlers-package=com.example.**.typehandler
Il est possible de spécifier un tel sentiment.
Note: Comme MyBatis lui-même ne prend pas en charge la spécification de caractères génériques, vous ne pouvez pas spécifier de caractères génériques dans le package de base spécifié dans le fichier de configuration (
mybatis-config.xml
) de MyBatis lui-même.
Important: ** Lorsque la version 2.0.1 est appliquée, "Erreur en double lors de l'analyse des alias de type, que des caractères génériques soient spécifiés ou non. / spring / issues / 362) »a été signalé, vous devez donc être prudent lors de la mise à jour. ** On sait que l'erreur ne se produit pas de manière inconditionnelle et que s'il existe une interface de classe qui satisfait aux conditions suivantes dans le package à analyser, une erreur en double se produira.
- Utilisation de plusieurs objets anonymes
- Il existe plusieurs classes d'interface / classes internes avec le même nom
Cet événement sera corrigé dans MyBatis Spring 2.0.2 (dont la sortie est prévue début 2019/7), et la version 2.1.0 intégrant MyBatis Spring 2.0.2 sera publiée début 2019/7. Je vais. Il n'est pas prévu de rétroporter vers la version 2.0.x (car il a été annoncé que Spring Boot 2.0.x sera EOL en mars 2019 + il est déjà sorti de GA). Afin de résoudre ce problème, il est fondamentalement recommandé de mettre à jour vers la version 2.1.x. Cependant ... Si vous ne pouvez pas mettre à jour vers la version 2.1.x, veuillez envisager d'appliquer MyBatis Spring 2.0.2 individuellement.
@ExtendWith (SpringExtension.class)
lors de la spécification @ MybatisTest
Depuis la version 2.0.1, il n'est plus nécessaire de spécifier @ExtendWith (SpringExtension.class)
dans la classe de cas de test JUnit 5 avec @ MybatisTest
. Il s'agit d'une annotation spécifiée par le moteur de framework JUnit 5 pour l'annotation synthétique @ MybatisTest
en ajoutant @ExtendWith (SpringExtension.class) ʻ sur le côté
@ MybatisTest. C'est parce qu'il lit les informations à partir de. Ce changement est un retour de la même réponse à
@ SpringBootTest` fournie par Spring Boot.
java:Version 2.0.Exemple de création de classe de cas de test JUnit5 dans 1 ou version ultérieure
@MybatisTest
class MyMapperTest {
// ...
}
java:Référence: Version 2.0.Exemple de création de classe de cas de test JUnit5 avant 0
@ExtendWith(SpringExtension.class) //Version 2.0.Cette spécification n'est pas requise après 1
@MybatisTest
class MyMapperTest {
// ...
}
Recommended Posts