Maison  >  Article  >  Java  >  Explication détaillée de l'instance Java de Spring Boot intégrant MyBatis

Explication détaillée de l'instance Java de Spring Boot intégrant MyBatis

Y2J
Y2Joriginal
2017-04-25 15:48:481582parcourir

Spring Boot est un nouveau framework fourni par l'équipe Pivotal. Il est conçu pour simplifier le processus initial de construction et de développement de nouvelles applications Spring. Le framework utilise une approche ad hoc de la configuration, éliminant ainsi le besoin pour les développeurs de définir des configurations standard. De cette manière, Spring Boot s’efforce de devenir un leader dans le domaine en plein essor du développement rapide d’applications.

Avant d'intégrer MyBatis, nous configurons d'abord une source de données druide.

Série Spring Boot

1. Premiers pas avec Spring Boot

2. Configuration et utilisation des propriétés Spring Boot

3.Spring Boot intègre MyBatis

4.Traitement des ressources statiques Spring Boot

5.Spring Boot - compétences en matière de dépendance de tri de configuration

Spring Boot Integrated Druid

druid possède de nombreuses options de configuration. Druid peut être facilement configuré à l'aide du fichier de configuration Spring Boot.

Écrivez dans le fichier de configuration application.yml :

spring :

datasource:
  name: test
  url: jdbc:mysql://192.168.16.137:3306/test
  username: root
  password:
  # 使用druid数据源
  type: com.alibaba.druid.pool.DruidDataSource
  driver-class-name: com.mysql.jdbc.Driver
  filters: stat
  maxActive: 20
  initialSize: 1
  maxWait: 60000
  minIdle: 1
  timeBetweenEvictionRunsMillis: 60000
  minEvictableIdleTimeMillis: 300000
  validationQuery: select 'x'
  testWhileIdle: true
  testOnBorrow: false
  testOnReturn: false
  poolPreparedStatements: true
  maxOpenPreparedStatements: 20
Configurez ici en tapant : com.alibaba.druid.pool.DruidDataSource !

Spring Boot intègre MyBatis

Il existe deux façons d'intégrer Spring Boot à MyBatis. Un moyen simple consiste à utiliser la solution officielle MyBatis :

mybatis-spring-boot-starter

Une autre méthode consiste à toujours utiliser une méthode de configuration similaire à mybatis-spring. Cette méthode vous oblige à écrire du code vous-même, mais elle peut facilement contrôler MyBatis. . Diverses configurations.

1. Méthode mybatis-spring-boot-starter

Ajouter des dépendances dans pom.xml :

<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.0.0</version>
</dependency>
L'arbre de dépendances Mybatis-spring-boot-starter est la suivante :

Explication détaillée de linstance Java de Spring Boot intégrant MyBatis

La version 3.3.0 utilisée par mybatis peut être passée :

modifie la version par défaut.

mybatis-spring utilise la version 1.2.3. Vous pouvez modifier la version par défaut via :

1.2.3.

Ajouter une configuration dans application.yml :

mybatis:

mapperLocations : classpath:mapper/*.xml

typeAliasesPackage : tk.mapper.model

En plus des deux configurations courantes ci-dessus, il existe également :

  • mybatis.config : le chemin d'accès au fichier de configuration mybatis-config.xml

  • mybatis.typeHandlersPackage : Scannez le package de typeHandlers

  • mybatis.checkConfigLocation : Vérifiez si le fichier de configuration existe

  • mybatis.executorType : Définir le mode d'exécution ( SIMPLE, REUSE, BATCH), la valeur par défaut est SIMPLE

2. méthode mybatis-spring

Cette méthode est la même que l'usage courant est relativement proche. Vous devez ajouter la dépendance mybatis et la dépendance mybatis-spring.

Créez ensuite une classe de configuration MyBatisConfig :

/**
 * MyBatis基础配置
 *
 * @author liuzh
 * @since 2015-12-19 10:11
 */
@Configuration
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {
 @Autowired
 DataSource dataSource;
 @Bean(name = "sqlSessionFactory")
 public SqlSessionFactory sqlSessionFactoryBean() {
  SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
  bean.setDataSource(dataSource);
  bean.setTypeAliasesPackage("tk.mybatis.springboot.model");
  //分页插件
  PageHelper pageHelper = new PageHelper();
  Properties properties = new Properties();
  properties.setProperty("reasonable", "true");
  properties.setProperty("supportMethodsArguments", "true");
  properties.setProperty("returnPageInfo", "check");
  properties.setProperty("params", "count=countSql");
  pageHelper.setProperties(properties);
  //添加插件
  bean.setPlugins(new Interceptor[]{pageHelper});
  //添加XML目录
  ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
  try {
   bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
   return bean.getObject();
  } catch (Exception e) {
   e.printStackTrace();
   throw new RuntimeException(e);
  }
 }
 @Bean
 public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
  return new SqlSessionTemplate(sqlSessionFactory);
 }
 @Bean
 @Override
 public PlatformTransactionManager annotationDrivenTransactionManager() {
  return new DataSourceTransactionManager(dataSource);
 }
}
Le code ci-dessus crée un SqlSessionFactory et un SqlSessionTemplate Afin de prendre en charge les transactions d'annotation, l'annotation @EnableTransactionManagement est ajoutée et un PlatformTransactionManagerBean est renvoyé. .

Il convient également de noter qu'il n'y a pas de MapperScannerConfigurer dans cette configuration. Si nous voulons scanner l'interface Mapper de MyBatis, nous devons configurer cette classe. Nous devons mettre cette configuration dans une classe distincte.

/**
 * MyBatis扫描接口
 * 
 * @author liuzh
 * @since 2015-12-19 14:46
 */
@Configuration
//TODO 注意,由于MapperScannerConfigurer执行的比较早,所以必须有下面的注解
@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig {
 @Bean
 public MapperScannerConfigurer mapperScannerConfigurer() {
  MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
  mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
  mapperScannerConfigurer.setBasePackage("tk.mybatis.springboot.mapper");
  return mapperScannerConfigurer;
 }
}
Assurez-vous de faire attention à @AutoConfigureAfter(MyBatisConfig.class) pour cette configuration, sinon il y aura des exceptions. La raison en est que cette classe est exécutée relativement tôt, puisque sqlSessionFactory n'existe pas encore, des erreurs d'exécution ultérieures se produisent.

Après avoir terminé la configuration ci-dessus, vous pouvez utiliser MyBatis.

À propos de l'intégration du plug-in de pagination et du Mapper universel

Un exemple de plug-in de pagination en tant que plug-in se trouve dans le code ci-dessus.

La configuration générale du Mapper consiste en fait à utiliser tk.mybatis.spring.mapper.MapperScannerConfigurer lors de la configuration de MapperScannerConfigurer et à configurer les propriétés à l'aide de Propriétés.

Projet de base pour Spring Boot intégrant MyBatis

J'ai téléchargé sur github un projet d'intégration en utilisant la deuxième méthode, et intégré le plug-in de pagination et le mapper universel. Le projet contient une configuration et des opérations simples, pour référence seulement.

Adresse du projet : https://github.com/abel533/MyBatis-Spring-Boot

Des informations connexes sur le plug-in de pagination et le mappeur général peuvent être trouvées à l'adresse ci-dessus.

Références associées :

Guide de démarrage rapide de Spring Boot

Tutoriel de démarrage rapide de Spring Boot

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn