springboot (integración mybatis, transacción)

En primer lugar, la integración MyBatis

  • MyBatis integración es la integración del trabajo del proyecto debe hacerse, antes de MyBatis necesidad de integración para integrar origen de datos, fuente de datos proporciona SpringBoot programa de integración automática, configuración hacen más fácil, para la integración en MyBatis sólo necesita unos pocos pasos simples que usted puede configurar.

1. Procedimiento

  1. dependencia de las importaciones
  2. Configuración del origen de datos
  3. componentes básicos completos para crear: dominio, asignador asignador, archivo de asignación mapper.xml, servicio de mesa
  4. configuración MyBatis
  5. prueba

1.1. La dependencia externa

La agrupación de conexiones, mysql impulsado, y los paquetes de MyBatis se introducen en, grupo de conexión seleccionado Ali Druida

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--mybatis jar包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!--mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.20</version>
        </dependency>

    </dependencies>

1.2 Configuración manual - no se recomienda

  • Configurar manualmente las cuatro propiedades
jdbc:
  username: root 
  password: 123456
  url: jdbc:mysql:///ssm
  driver-class-name: com.mysql.jdbc.Driver

Configuración definida la clase DataSource

@SpringBootApplication
public class ApplicationConfig {

    //手动配置
    @Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }

    public static void main(String[] args) {
        SpringApplication.run(ApplicationConfig.class, args);
    }
}

1.3 Configuración automática

dominio, asignador, capa de servicio se omite
application.yml se encuentra:

#配置DataSource
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql:///springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

#配置mybatis
mybatis:
  #sql:xml文件
  mapper-locations: classpath:cn/itsource/mapper/*.xml
  #配置别名
  type-aliases-package: cn.itsource.domain
server:
  port: 8080

clase de configuración ApplicationConfig

/**
 * @MapperScan("cn.itsource.mapper"):映射器的自动扫描
 */
@SpringBootApplication
@MapperScan("cn.itsource.mapper")
public class ApplicationConfig {

    public static void main(String[] args) {
        SpringApplication.run(ApplicationConfig.class,args);
    }
}

En segundo lugar, los asuntos de integración

  • En primavera podemos utilizar la configuración de transacciones anotación, también puede utilizar la configuración de la transacción manera XML, también puede utilizar estos dos métodos en SpringBoot, simplemente SpringBoot programa de anotación recomienda, por lo que estamos aquí principalmente anotación organizó la transacción.

Asuntos 2.1. Las anotaciones se configuran

administrador de transacciones abierta ==

  • Después de importar la dependencia MyBatis, administrador de transacciones ha existido, sólo tenemos que la gestión de transacciones abierta puede ser configurado en clase
/**
 * @MapperScan("cn.itsource.mapper"):映射器的自动扫描
 * 
 * @EnableTransactionManagement:开启事务管理
 */
@SpringBootApplication
@MapperScan("cn.itsource.mapper")
@EnableTransactionManagement
public class ApplicationConfig {

    public static void main(String[] args) {
        SpringApplication.run(ApplicationConfig.class,args);
    }
}

Jugar a la mancha en el servicio de transacciones (@Transactional han dado Asuntos función de servicio)

@Service
@Transactional
public class EmployeeServiceImpl implements IEmployeeService {

    @Autowired
    private EmployeeMapper employeeMapper;

    @Transactional(readOnly = true)
    @Override
    public List<Employee> findAll() {
        return employeeMapper.findAll();
    }
}

Asuntos de configuración 2.2.xml

introducción 2.2.1. AOP dependiente de

<!--aop依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

2.2.2. Asuntos de configuración XML

<!-- 配置事物管理器 -->

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    
    <aop:config>
        <aop:pointcut expression="execution(* cn.itsource.web.controller.service..*.*(..))" id="coreServicePointcut"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="coreServicePointcut"/>
    </aop:config> <!-- aop应用事务管理 -->


    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="select*" read-only="true"/>
            <tx:method name="*" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>

2.2.4. Clase de configuración de importación de configuración XML

@ImportResource("classpath:applicationContext-service.xml") 
public class ApplicationConfig{}
Publicado 33 artículos originales · ganado elogios 0 · Vistas 400

Supongo que te gusta

Origin blog.csdn.net/weixin_45737653/article/details/104929986
Recomendado
Clasificación