SpringBoot17 FastJson配置、Druid配置
1 FastJson配置
1.1 FastJson基础知识
1.2 SpringBoot整合FastJson
1.2.1 导入FastJson依赖
- <!--fastjson-->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.46</version>
- </dependency>
1.2.2 配置FastJson
技巧01:配置类必须位于启动方法同一级别或者下面的级别
技巧02:WebMvcConfigurerAdapter已经过时
参考文档:点击前往
- package cn.test.demo.base_demo.config;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- import com.alibaba.fastjson.support.config.FastJsonConfig;
- import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.http.MediaType;
- import org.springframework.http.converter.HttpMessageConverter;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author 王杨帅
- * @create 2018-05-09 14:33
- * @desc FastJson配置
- **/
- @Configuration
- public class FastJsonConfiguration extends WebMvcConfigurationSupport {
- @Override
- protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
- // 01 调用父类的配置
- super.configureMessageConverters(converters);
- // 02 实例化FastJson转换器
- FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
- // 03 数据类型配置
- List<MediaType> supportedMediaTypes = new ArrayList<>();
- supportedMediaTypes.add(MediaType.APPLICATION_JSON);
- supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
- supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
- supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
- supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
- supportedMediaTypes.add(MediaType.APPLICATION_PDF);
- supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
- supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
- supportedMediaTypes.add(MediaType.APPLICATION_XML);
- supportedMediaTypes.add(MediaType.IMAGE_GIF);
- supportedMediaTypes.add(MediaType.IMAGE_JPEG);
- supportedMediaTypes.add(MediaType.IMAGE_PNG);
- supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
- supportedMediaTypes.add(MediaType.TEXT_HTML);
- supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
- supportedMediaTypes.add(MediaType.TEXT_PLAIN);
- supportedMediaTypes.add(MediaType.TEXT_XML);
- fastJsonHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes);
- // 04 创建FastJson配置类
- FastJsonConfig fastJsonConfig = new FastJsonConfig();
- fastJsonConfig.setSerializerFeatures( // 修改FastJson过滤配置
- SerializerFeature.DisableCircularReferenceDetect,
- SerializerFeature.WriteMapNullValue,
- SerializerFeature.WriteNullStringAsEmpty
- );
- // 05 为FastJson转换器设置FastJson配置类
- fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
- // 06 将FastJson转换器添加到视图消息转换器列表中
- converters.add(fastJsonHttpMessageConverter);
- }
- }
FastJsonConfiguration.java
1.3 坑01
1.3.1 错误信息
Spring Boot配置FastJson报错'Content-Type' cannot contain wildcard type '*'
1.3.2 解决办法
2 Druid配置
2.1 导入druid依赖
- <!--druid数据库连接池-->
- <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.0.29</version>
- </dependency>
2.2 数据源配置
- spring:
- datasource:
- url: jdbc:mysql://127.0.0.1:3306/testdemo?useUnicode=true&characterEncoding=UTF-8&&useSSL=false
- driver-class-name: com.mysql.jdbc.Driver
- username: root
- password: root
- type: com.alibaba.druid.pool.DruidDataSource
- #最大活跃数
- maxActive: 20
- #初始化数量
- initialSize: 1
- #最大连接等待超时时间
- maxWait: 60000
- #打开PSCache,并且指定每个连接PSCache的大小
- poolPreparedStatements: true
- maxPoolPreparedStatementPerConnectionSize: 20
- #通过connectionProperties属性来打开mergeSql功能;慢SQL记录
- #connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
- minIdle: 1
- timeBetweenEvictionRunsMillis: 60000
- minEvictableIdleTimeMillis: 300000
- validationQuery: select 1 from dual
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
- #配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
- filters: stat, wall, log4j
- jpa:
- properties:
- hibernate:
- show_sql: true
- format_sql: true
2.3 Druid配置类
- package cn.test.demo.base_demo.config;
- import com.alibaba.druid.support.http.StatViewServlet;
- import com.alibaba.druid.support.http.WebStatFilter;
- 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;
- /**
- * @author 王杨帅
- * @create 2018-05-09 11:31
- * @desc 数据库监控配置
- **/
- @Configuration
- public class DruidConfigruration {
- @Bean
- public ServletRegistrationBean statViewServlet(){
- //创建servlet注册实体
- ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
- //设置ip白名单
- servletRegistrationBean.addInitParameter("allow","127.0.0.1");
- //设置ip黑名单,如果allow与deny共同存在时,deny优先于allow
- servletRegistrationBean.addInitParameter("deny","192.168.0.19");
- //设置控制台管理用户
- servletRegistrationBean.addInitParameter("loginUsername","druid");
- servletRegistrationBean.addInitParameter("loginPassword","123456");
- //是否可以重置数据
- servletRegistrationBean.addInitParameter("resetEnable","false");
- return servletRegistrationBean;
- }
- @Bean
- public FilterRegistrationBean statFilter(){
- //创建过滤器
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
- //设置过滤器过滤路径
- filterRegistrationBean.addUrlPatterns("/*");
- //忽略过滤的形式
- filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
- return filterRegistrationBean;
- }
- }
DruidConfigruration.java
2.4 参考博文
SpringBoot17 FastJson配置、Druid配置的更多相关文章
- 数据库连接池优化配置(druid,dbcp,c3p0)
主要描述了数据库连接池参数配置的准则,针对常用的数据库连接池(c3p0,dbcp,druid)给出推荐的配置. 考虑因素 1:当前连接DB的规模 2:并发情况 3:执行db的响应时间 配置考虑 1 ...
- druid配置数据库连接使用密文密码
spring使用druid配置dataSource片段代码 dataSource配置 <!-- 基于Druid数据库链接池的数据源配置 --> <bean id="data ...
- [转]阿里巴巴数据库连接池 druid配置详解
一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...
- JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...
- druid配置(转)
java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色的性能,也 ...
- 最新 Druid 配置
Druid是一个JDBC组件库,包括数据库连接池.SQL Parser等组件.DruidDataSource是最好的数据库连接池.下面我们就一起来在项目中配置Druid吧 1.Druid依赖配置 &l ...
- Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...
- JFinal Druid 配置
/** * 数据库密码加密,执行如下命令,生成加密密码 * java -cp druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools ...
- springboot配置Druid数据源
springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...
随机推荐
- tslib: Selected device is not a touchscreen (must support ABS_X and ABS_Y events)
/************************************************************************************ * tslib: Selec ...
- POJ1797 Heavy Transportation
解题思路:典型的Kruskal,不能用floyed(会超时),上代码: #include<cstdio> #include<cstring> #include<algor ...
- Linux下shell命令 1
1 [root@hadoop-namenode-1 iebd] cd /filename/filename 跳转至filename文件夹 2 [root@hadoop-namenode-1 ...
- 圆方树总结 [uoj30]Tourists
圆方树总结 所谓圆方树就是把一张图变成一棵树. 怎么变啊qaq 这里盗一张图 简单来说就是给每一个点双新建一个点,然后连向这个点双中的每一个点.特殊的,把两个点互相连通的也视作一个点双. 我们把原来就 ...
- 【3】SpringMVC的Controller
1SpringMvc的Controller是线程安全的吗? (1)由于是单例,tomcat的多线程环境访问,属性必须是不可变的,如果可变,会产生脏数据,线程不安全 2Spring的事务管理 (1)ao ...
- Android 杂记
Android Studio 报错:sdk location should not contain whitespace as this can cause problems with the ndk ...
- 谷歌设置支持webgl
浏览器报错: could not initialize WebGl 因为谷歌默认不支持WebGl 在浏览器器中输入 about:flags 然后开启:覆盖软件渲染列表,覆盖内置的软件渲染列表,并对不支 ...
- 程序4-3 umask函数实例
//http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...
- SQL Server数据库优化经验总结
优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert, ...
- python's fifteenth day for me 递归函数
递归... def age(n): if n == 1: return 18 else: return age(n-1)+2 # 反复调用函数age() print(age(4)) l = [1,3, ...