Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung der Java-Instanz von Spring Boot, die MyBatis integriert

Detaillierte Erläuterung der Java-Instanz von Spring Boot, die MyBatis integriert

Y2J
Y2JOriginal
2017-04-25 15:48:481629Durchsuche

Spring Boot ist ein neues Framework, das vom Pivotal-Team bereitgestellt wird. Es soll den anfänglichen Konstruktions- und Entwicklungsprozess neuer Spring-Anwendungen vereinfachen. Das Framework verwendet einen Ad-hoc-Ansatz für die Konfiguration, sodass Entwickler keine Boilerplate-Konfigurationen definieren müssen. Auf diese Weise strebt Spring Boot danach, führend im boomenden Bereich der schnellen Anwendungsentwicklung zu werden.

Bevor wir MyBatis integrieren, konfigurieren wir zunächst eine Druidendatenquelle.

Spring Boot-Serie

1. Erste Schritte mit Spring Boot

2. Konfiguration und Verwendung von Spring Boot-Eigenschaften

3.Spring Boot integriert MyBatis

4.Spring Boot statische Ressourcenverarbeitung

5.Spring Boot – Fähigkeiten zum Sortieren von Abhängigkeiten in der Konfiguration

Spring Boot Integrated Druid

Druid verfügt über viele Konfigurationsoptionen. Druid kann einfach mithilfe der Spring Boot-Konfigurationsdatei konfiguriert werden.

Schreiben Sie in die Konfigurationsdatei 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

Konfigurieren Sie hier über den Typ: com.alibaba.druid.pool.DruidDataSource!

Spring Boot integriert MyBatis

Es gibt zwei Möglichkeiten, Spring Boot mit MyBatis zu integrieren. Eine einfache Möglichkeit ist die Verwendung der offiziellen MyBatis-Lösung:

mybatis-spring-boot-starter

Eine andere Möglichkeit besteht darin, weiterhin eine Konfigurationsmethode ähnlich wie mybatis-spring zu verwenden. Diese Methode erfordert, dass Sie selbst etwas Code schreiben, aber sie kann MyBatis problemlos steuern . Verschiedene Konfigurationen.

1. mybatis-spring-boot-starter-Methode

Abhängigkeiten in pom.xml hinzufügen:

<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.0.0</version>
</dependency>

Der Abhängigkeitsbaum von Mybatis-spring-boot-starter lautet wie folgt:

Detaillierte Erläuterung der Java-Instanz von Spring Boot, die MyBatis integriert

Die von mybatis verwendete Version 3.3.0 kann übergeben werden:

ändert die Standardversion.

mybatis-spring verwendet Version 1.2.3 Sie können die Standardversion ändern über:

1.2.3.

Konfiguration in application.yml hinzufügen:

mybatis:

mapperLocations: classpath:mapper/*.xml
typeAliasesPackage: tk.mapper.model

Zusätzlich zu den beiden oben genannten allgemeinen Konfigurationen gibt es auch:

  • mybatis.config: der Pfad zur Konfigurationsdatei mybatis-config.xml

  • mybatis.typeHandlersPackage: Scannen Sie das Paket von typeHandlers

  • mybatis.checkConfigLocation: Überprüfen Sie, ob die Konfigurationsdatei vorhanden ist

  • mybatis.executorType : Ausführungsmodus festlegen (SIMPLE, REUSE, BATCH), der Standardwert ist SIMPLE

2. Mybatis-Spring-Methode

Diese Methode ähnelt der allgemeinen Verwendung und ist relativ ähnlich. Sie müssen die Abhängigkeit mybatis und die Abhängigkeit mybatis-spring hinzufügen.

Dann erstellen Sie eine MyBatisConfig-Konfigurationsklasse:

/**
 * 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);
 }
}

Der obige Code erstellt eine SqlSessionFactory und ein SqlSessionTemplate. Um Annotationstransaktionen zu unterstützen, wird die Annotation @EnableTransactionManagement hinzugefügt und ein PlatformTransactionManagerBean zurückgegeben .

Es sollte auch beachtet werden, dass es in dieser Konfiguration keinen MapperScannerConfigurer gibt. Wenn wir die Mapper-Schnittstelle von MyBatis scannen möchten, müssen wir diese Klasse konfigurieren.

/**
 * 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;
 }
}

Achten Sie bei dieser Konfiguration unbedingt auf @AutoConfigureAfter(MyBatisConfig.class), da es sonst zu Ausnahmen kommt. Der Grund dafür ist, dass diese Klasse relativ früh ausgeführt wird. Da sqlSessionFactory noch nicht existiert, treten nachfolgende Ausführungsfehler auf.

Nachdem Sie die obige Konfiguration abgeschlossen haben, können Sie MyBatis verwenden.

Über die Integration von Paging-Plug-in und Universal Mapper

Ein Beispiel für ein Paging-Plug-in als Plug-in finden Sie im obigen Code.

Die allgemeine Mapper-Konfiguration besteht eigentlich darin, bei der Konfiguration von MapperScannerConfigurer tk.mybatis.spring.mapper.MapperScannerConfigurer zu verwenden und Eigenschaften zum Konfigurieren von Eigenschaften zu verwenden.

Spring Boot integriert das Basisprojekt von MyBatis

Ich habe ein Integrationsprojekt mit der zweiten Methode auf Github hochgeladen und das Paging-Plugin und den universellen Mapper integriert. Das Projekt enthält einfache Konfiguration und Bedienung , nur als Referenz.

Projektadresse: https://github.com/abel533/MyBatis-Spring-Boot

Weitere Informationen zum Paging-Plug-in und zum allgemeinen Mapper finden Sie unter der oben genannten Adresse.

Verwandte Referenzen:

Spring Boot-Schnellstartanleitung

Spring Boot-Schnellstartanleitung

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Java-Instanz von Spring Boot, die MyBatis integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn