Heim >Java >javaLernprogramm >Detaillierte Erläuterung der Java-Instanz von Spring Boot, die MyBatis integriert
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:
Die von mybatis verwendete Version 3.3.0 kann übergeben werden:
mybatis-spring verwendet Version 1.2.3 Sie können die Standardversion ändern über:
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!