La integración de fuentes de datos y el marco SpringBoot Druida mybatis

Druida Ali desarrollado con datos de monitoreo se recomienda!

在pom文件中引入依赖
 <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>
        <!-- 因为druidj中配置了lo4j的日志功能,所以需要引入log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

Nuestro archivo de configuración de fuente de datos en application.yml

server:
  port: 8888

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp&useSSL=false&amp&characterEncoding=UTF-8&amp&serverTimezone=GMT%2B8
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    #   配置监控统计拦截的filters , stat:监控统计、wall:防止SQL注入、log4j:日志记录
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

Configuración de una configuración de clase DruidConfig de nuestras fuentes de datos Druid utilizados para personalizar el (código muerto no necesita recordar directamente en la línea)

package com.jee.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class DruidConfig {
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
        return new DruidDataSource();
    }
    //配置Druid的监控
    //1、配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map<String,String> initParams = new HashMap<>();

        initParams.put("loginUsername","admin");
        initParams.put("loginPassword","123456");
        initParams.put("allow","");//默认就是允许所有访问
        initParams.put("deny","192.168.15.21");

        bean.setInitParameters(initParams);
        return bean;
    }


    //2、配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());

        Map<String,String> initParams = new HashMap<>();
        initParams.put("exclusions","*.js,*.css,/druid/*");

        bean.setInitParameters(initParams);

        bean.setUrlPatterns(Arrays.asList("/*"));

        return  bean;
    }
}

Fuimos a mirar en la página web del Druida seguimiento de la página
Aquí Insertar imagen Descripción
para introducir un nombre de usuario y contraseña que vamos configuración del conjunto de la clase de signo:
Aquí Insertar imagen Descripción

Por encima de nuestra fuente de datos Druid en la configuración de acabado

Después de configurar la fuente de datos que tenemos es muy fácil de configurar marco mybatis

Primero dependencia de las importaciones:

<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

Crear una tabla de base de datos y la clase de entidad correspondiente

public class User {
    private int id;
    private String name;
    private String password;

    public User() {
    }
}

Crear una clase Mapper

@Mapper   //@Mapper注解表示这个接口是Mybatis中的Mapper类
@Repository  //@Repository注解表示这个类是输入dao层的
public interface UserMapper {
    //查找所有用户
    public List<User> getAllUser();
}

Crear un directorio junto al recurso mybatis/mapperde directorio para almacenar archivos mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        <!--注意  这里我们的resultType用了别名 而不是全类名  这是我们再application.yml中配置的 我们待会就去配置-->
<mapper namespace="com.jee.mapper.UserMapper">
    <select id="selectAllUser" resultType="User">
         select * from user
    </select>
</mapper>

Finalmente, vaya configurado application.yml en algunos de nuestros mybatis

mybatis:
  type-aliases-package: com.jee.entity   #起别名的包  该包下所有的类都会自动设置别名 就是类本身的名字
  mapper-locations: classpath:mybatis/mapper/*Mapper.xml  #mapper.xml文件的存放位置

Cuando se utiliza el asignador de las interfaces se pueden inyectar de forma automática en el código

@Controller
public class MyController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/aa")
    @ResponseBody
    public String fun1() throws JsonProcessingException {
        List<User> allUser = userMapper.getAllUser();
        ObjectMapper mapper = new ObjectMapper();
        return (mapper.writeValueAsString(allUser));
    }
}
Publicado 53 artículos originales · ganado elogios 0 · Vistas 1944

Supongo que te gusta

Origin blog.csdn.net/XXuan_/article/details/104848531
Recomendado
Clasificación