SpringBoot 통합 Druid 데이터 원본 프로 세 스 상세 설명

이 글 은 주로 SpringBoot 통합 Druid 데이터 소스 과정 에 대한 상세 한 설명 을 소개 합 니 다.이 글 은 예시 코드 를 통 해 매우 상세 하 게 소개 되 어 있 으 며 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 으 므 로 필요 한 분 들 은 참고 하 시기 바 랍 니 다.
1.데이터베이스 구조

2.프로젝트 구조

3.pom.xml 파일

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
  </dependency>
 
  <!--  druid    -->
  <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.8</version>
  </dependency>
 
  <!-- https://mvnrepository.com/artifact/log4j/log4j -->
  <!--                       filters         filters: stat,wall,log4j  -->
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>
 
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
 
 
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>
 
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build> 
4.application.yml 프로필

spring:
 datasource:
  username: root
  password: wangqing
  url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
  driver-class-name: com.mysql.jdbc.Driver
  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,       sql    ,'wall'     
  filters: stat,wall,log4j
  maxPoolPreparedStatementPerConnectionSize: 20
  useGlobalDataSourceStat: true
  connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
  #     DruidDataSource     
  #useGlobalDataSourceStat: true
   
mybatis:
 #           
 #config-location: classpath:mybatis/mybatis-config.xml
 #   sql      
 mapper-locations: classpath:mapper/*.xml      # src/main/resources  mappers    TUserMapper.xml
 
#  schema:
#   - classpath:sql/department.sql     #  department.sql  sql     
#   - classpath:sql/employee.sql 
5.Druid Config 의 설정 클래스 를 만 들 고 Druid Datasource 를 예화 합 니 다.

package com.qingfeng.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 {
   //    appliction.yml     spring.datasource   
   // DruidDataSource       appliction.yml     spring.datasource       
  @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","");
 
    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;
  }
}
6.UserController 클래스 테스트 만 들 기

package com.qingfeng.controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import java.util.List;
import java.util.Map;
 
@Controller
public class UserController {
 
  @Autowired
  JdbcTemplate jdbcTemplate;
  @ResponseBody
  @GetMapping("/query")
  public Map<String,Object> map(){
    List<Map<String, Object>> list = jdbcTemplate.queryForList("select * FROM user");
    return list.get(0);
  }
}
7.프로젝트 실행,브 라 우 저 로 접근http://localhost:8080/query

8.저희 DruidConfig 클래스 에 설 치 된 아래 코드 는 모니터링 을 도와 줄 수 있 습 니 다.

//  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","");
 
    bean.setInitParameters(initParams);
    return bean;
  }
9.프로젝트 를 시작 하고 인터넷 주 소 를 엽 니 다.http://localhost:8080/druid/login.html 로그 인 을 통 해 druid 데이터 원본 상태 모니터링 을 볼 수 있 습 니 다.

우리 위 에 설 치 된 것 은 사용자 이름:admin 비밀번호:123456

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기