昆明网站制作内容,青海西宁高端网站建设,淘宝网站开发方式,怎么成立个人网站文章目录 1.JDBC HikariDataSource#xff08;SpringBoot2默认数据源#xff09;1.数据库表设计2.引入依赖 pom.xml3.配置数据源参数 application.yml4.编写一个bean#xff0c;映射表5.编写测试类来完成测试1.引入依赖 pom.xml2.使用JdbcTemplate进行测试3.成功#xff0… 文章目录 1.JDBC HikariDataSourceSpringBoot2默认数据源1.数据库表设计2.引入依赖 pom.xml3.配置数据源参数 application.yml4.编写一个bean映射表5.编写测试类来完成测试1.引入依赖 pom.xml2.使用JdbcTemplate进行测试3.成功 2.整合Druid到SpringBoot1.基本介绍2.Druid基本使用1.引入德鲁伊依赖 pom.xml2.使用配置类注入DruidDataSource3.测试4.细节说明 3.Druid监控功能1.SQL监控1.配置类中配置2.浏览器输入http://localhost:8080/druid/index.html查看监控页面3.配置类注入数据源时开启sql监控4.编写Controller进行测试5.浏览器请求Controller进行测试6.关于区间分布 2.Web关联监控1.配置类配置webStatFilter2.测试 3.SQL防火墙1.配置类注入数据源时添加过滤器2.测试 4.Session监控默认开启测试 4.目前阶段完整配置文件1.pom.xml2.application.yml 配置数据源信息3.DruidDataSourceConfig.java 配置类 5.使用starter方式整合druid1.取消之前对druid的配置1.修改pom.xml注销druid的依赖2.注销整个DruidDataSourceConfig.java3.测试 2.pom.xml 引入依赖3.application.yml 配置数据源和druid监控 1.JDBC HikariDataSourceSpringBoot2默认数据源
1.数据库表设计
-- 创建 spring_boot
DROP DATABASE IF EXISTS spring_boot;
CREATE DATABASE spring_boot;USE spring_boot; -- 创建家居表
CREATE TABLE furn(
id INT(11) PRIMARY KEY AUTO_INCREMENT, ## id
name VARCHAR(64) NOT NULL, ## 家居名
maker VARCHAR(64) NOT NULL, ## 厂商
price DECIMAL(11,2) NOT NULL, ## 价格
sales INT(11) NOT NULL, ## 销量
stock INT(11) NOT NULL, ## 库存
img_path VARCHAR(256) NOT NULL ## 照片路径
);-- 初始化家居数据
INSERT INTO furn(id , name , maker , price , sales , stock , img_path)
VALUES(NULL , 北 欧 风 格 小 桌 子 , 熊 猫 家 居 , 180 , 666 , 7 ,
assets/images/product-image/1.jpg);
INSERT INTO furn(id , name , maker , price , sales , stock , img_path)
VALUES(NULL , 简 约 风 格 小 椅 子 , 熊 猫 家 居 , 180 , 666 , 7 ,
assets/images/product-image/2.jpg);
INSERT INTO furn(id , name , maker , price , sales , stock , img_path)
VALUES(NULL , 典 雅 风 格 小 台 灯 , 蚂 蚁 家 居 , 180 , 666 , 7 ,
assets/images/product-image/3.jpg);
INSERT INTO furn(id , name , maker , price , sales , stock , img_path)
VALUES(NULL , 温 馨 风 格 盆 景 架 , 蚂 蚁 家 居 , 180 , 666 , 7 ,
assets/images/product-image/4.jpg);
2.引入依赖 pom.xml !--引入data-jdbc数据源--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jdbc/artifactId/dependency!--引入mysql的驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId!--这里没有使用版本仲裁--version5.1.49/version/dependency3.配置数据源参数 application.yml
spring:datasource: #配置数据源url: jdbc:mysql://localhost:3306/spring_boot?useSSLfalseuseUnicodetruecharacterEncodingUTF-8username: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driver4.编写一个bean映射表
package com.sun.springboot.bean;import lombok.Data;import java.math.BigDecimal;/*** author 孙显圣* version 1.0*/
Data
public class Furn {private Integer id;private String name;private String maker;private BigDecimal price;private Integer sales;private Integer stock;private String imgPath;
}
5.编写测试类来完成测试
1.引入依赖 pom.xml !--引入starter-test--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency2.使用JdbcTemplate进行测试
package com.sun.springboot;import com.sun.springboot.bean.Furn;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;import javax.annotation.Resource;
import java.util.List;/*** author 孙显圣* version 1.0*/
SpringBootTest
public class ApplicationTests {//使用JdbcTemplateResourceprivate JdbcTemplate jdbcTemplate;Testpublic void contextLoads() {//使用这个对象来封装查询结果BeanPropertyRowMapperFurn furnBeanPropertyRowMapper new BeanPropertyRowMapper(Furn.class);//进行查询ListFurn query jdbcTemplate.query(select * from furn, furnBeanPropertyRowMapper);for (Furn furn : query) {System.out.println(furn);}}
}
3.成功 2.整合Druid到SpringBoot
1.基本介绍 2.Druid基本使用
1.引入德鲁伊依赖 pom.xml !--引入druid依赖--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.17/version/dependency2.使用配置类注入DruidDataSource
package com.sun.springboot.config;import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;/*** author 孙显圣* version 1.0*/
Configuration
public class DruidDataSourceConfig {//注入一个德鲁伊数据源ConfigurationProperties(spring.datasource) //读取yaml配置文件的参数获取数据源配置Beanpublic DataSource dataSource() {return new DruidDataSource();}
}
3.测试 4.细节说明
ConfigurationProperties(“spring.datasource”)只要配置了这个就会自动读取yaml配置文件中配置的数据源信息只要注入了德鲁伊的数据源则原来默认的数据源将不会被注入因为默认数据源的注入有条件注入的注解只有在没有配置数据源的时候才会被注入
3.Druid监控功能
1.SQL监控
1.配置类中配置 //配置德鲁伊监控sql功能Beanpublic ServletRegistrationBean statViewServlet() {StatViewServlet statViewServlet new StatViewServlet();ServletRegistrationBeanStatViewServlet registrationBean new ServletRegistrationBean(statViewServlet, /druid/*);//配置登录监控页面用户名和密码registrationBean.addInitParameter(loginUsername, root);registrationBean.addInitParameter(loginPassword, root);return registrationBean;}2.浏览器输入http://localhost:8080/druid/index.html查看监控页面 3.配置类注入数据源时开启sql监控 4.编写Controller进行测试
package com.sun.springboot.controller;import com.sun.springboot.bean.Furn;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
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;/*** author 孙显圣* version 1.0*/
Controller
public class DruidSqlController {AutowiredJdbcTemplate jdbcTemplate;ResponseBodyGetMapping(/sql)public ListFurn crudDB(){BeanPropertyRowMapperFurn rowMapper new BeanPropertyRowMapper(Furn.class);ListFurn furns jdbcTemplate.query(select * from furn, rowMapper);for (Furn furn : furns) {System.out.println(furn);}return furns;}
}5.浏览器请求Controller进行测试 6.关于区间分布 2.Web关联监控
1.配置类配置webStatFilter //配置webStatFilterBeanpublic FilterRegistrationBean webStatFilter() {WebStatFilter webStatFilter new WebStatFilter();FilterRegistrationBeanWebStatFilter filterRegistrationBean new FilterRegistrationBean(webStatFilter);//默认对所有 URL 请求监控filterRegistrationBean.setUrlPatterns(Arrays.asList(/*));//排除 URLfilterRegistrationBean.addInitParameter(exclusions, *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*);return filterRegistrationBean;}2.测试 3.SQL防火墙
1.配置类注入数据源时添加过滤器 2.测试 4.Session监控默认开启
测试 4.目前阶段完整配置文件
1.pom.xml
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdspringboot-usersys/artifactIdversion1.0-SNAPSHOT/versionnameArchetype - springboot-usersys/nameurlhttp://maven.apache.org/url!--导入springboot父工程--parentartifactIdspring-boot-starter-parent/artifactIdgroupIdorg.springframework.boot/groupIdversion2.5.3/version/parentdependencies!--web场景启动器--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactId/dependency!--thymeleaf场景启动器--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependency!--引入data-jdbc数据源--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jdbc/artifactId/dependency!--引入mysql的驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId!--这里没有使用版本仲裁--version5.1.49/version/dependency!--引入starter-test--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency!--引入druid依赖--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.17/version/dependency/dependencies
/project
2.application.yml 配置数据源信息
spring:datasource: #配置数据源url: jdbc:mysql://localhost:3306/spring_boot?useSSLfalseuseUnicodetruecharacterEncodingUTF-8username: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driver3.DruidDataSourceConfig.java 配置类
package com.sun.springboot.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.sql.SQLException;
import java.util.Arrays;/*** author 孙显圣* version 1.0*/
Configuration
public class DruidDataSourceConfig {//注入一个德鲁伊数据源ConfigurationProperties(spring.datasource) //读取yaml配置文件的参数获取数据源配置Beanpublic DataSource dataSource() throws SQLException {DruidDataSource druidDataSource new DruidDataSource();druidDataSource.setFilters(stat, wall); //开启sql监控return druidDataSource;}//配置德鲁伊监控sql功能Beanpublic ServletRegistrationBean statViewServlet() {StatViewServlet statViewServlet new StatViewServlet();ServletRegistrationBeanStatViewServlet registrationBean new ServletRegistrationBean(statViewServlet, /druid/*);//配置登录监控页面用户名和密码registrationBean.addInitParameter(loginUsername, root);registrationBean.addInitParameter(loginPassword, root);return registrationBean;}//配置webStatFilterBeanpublic FilterRegistrationBean webStatFilter() {WebStatFilter webStatFilter new WebStatFilter();FilterRegistrationBeanWebStatFilter filterRegistrationBean new FilterRegistrationBean(webStatFilter);//默认对所有 URL 请求监控filterRegistrationBean.setUrlPatterns(Arrays.asList(/*));//排除 URLfilterRegistrationBean.addInitParameter(exclusions, *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*);return filterRegistrationBean;}
}
5.使用starter方式整合druid
1.取消之前对druid的配置
1.修改pom.xml注销druid的依赖 2.注销整个DruidDataSourceConfig.java
3.测试 2.pom.xml 引入依赖 !--引入德鲁伊的starter--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.17/version/dependency3.application.yml 配置数据源和druid监控
spring:datasource: #配置数据源url: jdbc:mysql://localhost:3306/spring_boot?useSSLfalseuseUnicodetruecharacterEncodingUTF-8username: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driver#配置德鲁伊监控功能druid:stat-view-servlet:enabled: truelogin-username: rootlogin-password: rootreset-enable: false#配置web监控web-stat-filter:enabled: trueurl-pattern: /*exclusions: *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*#配置sql监控filter:stat:log-slow-sql: trueslow-sql-millis: 1000 #1000毫秒就算慢查询enabled: truewall:enabled: trueconfig:#黑白名单drop-table-allow: false #不允许删除表select-all-column-allow: false #不允许查询所有字段