>  기사  >  Java  >  MyBatis를 통합하는 Spring Boot의 Java 인스턴스에 대한 자세한 설명

MyBatis를 통합하는 Spring Boot의 Java 인스턴스에 대한 자세한 설명

Y2J
Y2J원래의
2017-04-25 15:48:481657검색

Spring Boot는 Pivotal 팀에서 제공하는 새로운 프레임워크로, 새로운 Spring 애플리케이션의 초기 구성 및 개발 프로세스를 단순화하도록 설계되었습니다. 프레임워크는 구성에 대한 임시 접근 방식을 사용하므로 개발자가 상용구 구성을 정의할 필요가 없습니다. 이러한 방식으로 Spring Boot는 급성장하고 있는 신속한 애플리케이션 개발 분야의 리더가 되기 위해 노력하고 있습니다.

MyBatis를 통합하기 전에 먼저 druid 데이터 소스를 구성합니다.

Spring Boot 시리즈

1. Spring Boot 시작하기

2. >

3.Spring Boot는 MyBatis를 통합합니다

4.Spring Boot 정적 자원 처리

5.Spring Boot - 구성 정렬 종속성 기술

Spring Boot 통합 druid

druid에는 많은 구성 옵션이 있습니다. Druid는 spring Boot 구성 파일을 사용하여 쉽게 구성할 수 있습니다.

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

여기에서 다음 유형을 통해 구성하세요: com.alibaba.druid.pool.DruidDataSource!

Spring Boot는 MyBatis를 통합합니다

Spring Boot를 MyBatis와 통합하는 간단한 방법은 공식 MyBatis 솔루션을 사용하는 것입니다.

mybatis-spring-boot-starter

또 다른 방법은 mybatis-spring과 유사한 구성 방법을 사용하는 것입니다. 이 방법을 사용하려면 일부 코드를 직접 작성해야 하지만 MyBatis를 쉽게 제어할 수 있습니다. .다양한 구성.

1. mybatis-spring-boot-starter 방법

pom.xml에 종속성 추가:

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

mybatis - spring-boot-starter 종속성 트리는 다음과 같습니다.

MyBatis를 통합하는 Spring Boot의 Java 인스턴스에 대한 자세한 설명

mybatis에서 사용하는 3.3.0 버전을 전달할 수 있습니다.

3.3 .0 속성은 기본 버전을 수정합니다.

mybatis-spring은 버전 1.2.3을 사용합니다.

1.2.3을 통해 기본 버전을 수정할 수 있습니다.

application.yml에 구성 추가:

mybatis:

mapperLocations: classpath:mapper/*.xml

typeAliasesPackage: tk.mapper.model

위의 두 가지 일반적인 구성 외에도 다음이 있습니다.

  • mybatis.config: mybatis-config.xml 구성 파일의 경로

  • mybatis.typeHandlersPackage: typeHandler 패키지 검사

  • mybatis.checkConfigLocation: 구성 파일이 있는지 확인

  • mybatis.executorType : 실행 모드 설정(SIMPLE, REUSE, BATCH), 기본값은 SIMPLE

2. mybatis-spring 메소드

이 방법은 일반적인 사용법과 동일하며 상대적으로 가깝습니다. mybatis 종속성과 mybatis-spring 종속성을 추가해야 합니다.

그런 다음 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);
 }
}

위 코드는 SqlSessionFactory 및 SqlSessionTemplate을 생성하여 주석 트랜잭션을 지원하기 위해 @EnableTransactionManagement 주석이 추가되고 PlatformTransactionManagerBean이 반환됩니다.

또한 이 구성에는 MapperScannerConfigurer가 없다는 점에 유의해야 합니다. MyBatis의 Mapper 인터페이스를 스캔하려면 이 구성을 별도의 클래스에 배치해야 합니다.

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

이 구성에 대해서는 @AutoConfigureAfter(MyBatisConfig.class)에 주의해야 합니다. 그렇지 않으면 예외가 발생합니다. 그 이유는 이 클래스가 비교적 일찍 실행되기 때문입니다. sqlSessionFactory가 아직 존재하지 않기 때문에 후속 실행 오류가 발생합니다.

위 구성을 완료한 후 MyBatis를 사용할 수 있습니다.

페이징 플러그인과 범용 매퍼 통합에 대해

플러그인인 페이징 플러그인의 예가 위 코드에 있습니다.

일반적인 Mapper 구성은 실제로 MapperScannerConfigurer 구성 시 tk.mybatis.spring.mapper.MapperScannerConfigurer를 사용하고 Properties를 사용하여 속성을 구성하는 것입니다.

MyBatis를 통합하는 Spring Boot 기본 프로젝트

두 번째 방법으로 통합 프로젝트를 github에 업로드하고, 페이징 플러그인과 유니버설 매퍼를 통합한 프로젝트입니다. 참고용으로만 사용하세요.

프로젝트 주소: https://github.com/abel533/MyBatis-Spring-Boot

위 주소에서 페이징 플러그인 및 일반 Mapper 관련 정보를 확인하실 수 있습니다.

관련 참조:

Spring Boot 빠른 시작 가이드

Spring Boot 빠른 시작 튜토리얼

위 내용은 MyBatis를 통합하는 Spring Boot의 Java 인스턴스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.