Druid

Druid连接池配置

spring:
mvc:
servlet:
load-on-startup: 1
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
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,去掉后监控界面sq1无法统计,’wall'用于防火墙
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

安装依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency> <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

Druid数据监控

访问地址

http://localhost/druid
@Configuration
public class DruidConfig{
@ConfigurationProperties(prefix="spring.datasource")
@Bean
public DataSource druid(){
return new DruidDataSource();
}
//1.配置servlet
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
HashMap<Object, Object> hashMap = new HashMap<> ();
hashMap.put("loginUsername", "admin");
hashMap.put("loginPassword", "123456");
hashMap.put("allow", "");//允许访问所有
bean.setInitParameters(hashMap);
return bean;
} //2.配置Filter
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean bean=new FilterRegistrationBean(new WebStatFilter());
HashMap<Object,Object> hashMap=new HashMap<>();
hashMap.put("exclusions","*.js,*.css,/druid/*");
bean.setInitParameters(hashMap);
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}

集成Swagger2

Swagger2简介

1.随项目自动生成强大RESTful API文档,减少工作量
2.API文档与代码整合在一起,便于同步更新API说明
3.页面测试功能来调试每个RESTful API

1.添加依赖

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>

2.创建Swagger2配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.itlike"))// 指定扫描包下面的注解
.paths(PathSelectors.any())
.build();
}
// 创建api的基本信息
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("集成Swagger2构建RESTful APIs")
.description("集成Swagger2构建RESTful APIs")
.termsOfServiceUrl("https://www.baidu.com")
.contact("itlike")
.version("1.0.0")
.build();
}
}

3.在控制器方法上添加对应api信息

@Api(value="用户controller",tags={"用户操作接口"})
@RequestMapping("hero")
public class MyController{
@Autowired
private HeroService heroService; @ApiOperation(value="获取英雄信息",notes="根据id来获取英雄详细信息)
@ApiImplicitParam(name="id",value="用户ID",required=true,dataType="String")
@RequestMapping("/getHero/{id}")
@ResponseBody
public Hero getHero(@PathVariable("id")Long id,ModelMap modelMap){
Hero hero=heroService.getHeroById(id);
modelMap.addAttribute("hero",hero);
return hero;
}
}

4.启动Spring boot,访问Swagger UI界面

http://localhost/swagger-ui.html#/

常见Api

@Api(value="用户controller",tags={"用户操作接口"})
Api 用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源 @ApiOperation(value="获取用户信息",notes="注意问题点",httpMethod="GET")
用在方法上,说明方法的作用,每一个url资源的定义,使用方式 @ApiImplicitParams({@ApiImplicitParam(name="id",value="用户id",dataType="Long", paramType = "path")})
参数说明 @ApiIgnore()
忽略方法

SpringBoot框架 之 Druid与Swagger2的更多相关文章

  1. SpringBoot框架:通过AOP和自定义注解完成druid连接池的动态数据源切换(三)

    一.引入依赖 引入数据库连接池的依赖--druid和面向切面编程的依赖--aop,如下所示: <!-- druid --> <dependency> <groupId&g ...

  2. SpringBoot整合阿里Druid数据源及Spring-Data-Jpa

    SpringBoot整合阿里Druid数据源及Spring-Data-Jpa https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=224 ...

  3. Spring-Cloud之Spring-Boot框架-1

    一.Spring Boot 是由 Pivotal 团队开发的 Spring 框架,采用了生产就绪的观点 ,旨在简化配置,致力于快速开发. Spring Boot 框架提供了自动装配和起步依赖,使开发人 ...

  4. Springboot框架

    本片文章主要分享一下,Springboot框架为什么那么受欢迎以及如何搭建一个Springboot框架. 我们先了解一下Springboot是个什么东西,它是干什么用的.我是刚开始接触,查了很多资料, ...

  5. SpringBoot 框架整合

    代码地址如下:http://www.demodashi.com/demo/12522.html 一.主要思路 使用spring-boot-starter-jdbc集成Mybatis框架 通过sprin ...

  6. SpringBoot框架:两个方法同时调用时父方法使内部方法的DataSource注解失效的解决办法

    一.问题如下: 使用的是SpringBoot框架:通过AOP和自定义注解完成druid连接池的动态数据源切换(三)中的两个数据库spring_boot_demo和other_data. 在UserCo ...

  7. Mybatis-plus<一> Springboot框架使用MybatisPlus代码自动生成器

    Mybatis-plus<一> Springboot框架使用MybatisPlus代码自动生成器 Mybatis-plus官网: https://mp.baomidou.com/ Demo ...

  8. Springboot 框架学习

    Springboot 框架学习 前言 Spring Boot是Spring 官方的顶级项目之一,她的其他小伙伴还有Spring Cloud.Spring Framework.Spring Data等等 ...

  9. 小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】

    前言: 我的后端项目是Java写的,用的Springboot框架.在部署服务器并配置https访问过程中,因为做了一些令人窒息的操作(事后发现),所以老是不能成功. 不成功具体点说就是:域名地址可以正 ...

随机推荐

  1. 关于创建Web图像时应记住的五个要素

    1. 格式与下载速度 当前,Web上用的最广泛的三种格式是GIF.PNG和JPEG.我们的目标是选择质量最高,同时文件最小的格式. WebP图像格式 谷歌建立了另一种图像格式,名为WebP. 这种格式 ...

  2. Java项目之查询后分页

    一.Jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  3. 支付宝支付 微信支付SDK接口不统一? 盘他!

      开发过支付宝.微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手.在这里,统一封装微信支付和支付宝支付的API,使两种支付方 ...

  4. java Excel文件流输出(后台)没有下载提示

    /**方案: *1. *问题源头应该是前端用的是ajax方式请求路径,要想出现下载Excel的弹窗,我个人理解应该是等同于重新打开一个窗口,而ajax默认不动页面直接将值返回,所以没有提升下载. *解 ...

  5. Flask项目-循环导入及蓝图

    在学习flask时,肯定有许多人好奇,为什么一定要使用蓝图,而不能直接使用app应用程序对象导来导去,很多可能会说那是由于 循环导入的缘故,但是当我们通过url访问视图函数的时候,为什么会报404 n ...

  6. Pods

    Pods Pod概念 Pod是kubernetes集群应用中的创建和部署的最小.最简单的kubernetes对象模型单元的基本执行单元.Pod表示在集群中运行的进程. Pod 封装了应用程序的容器(一 ...

  7. Kubernetes网络之Flannel工作原理

    目录 1.Docker网络模式 1.1 bridge网络的构建过程 1.2 外部访问 2.Kubernetes网络模式 2.1 同一个Pod中容器之间的通信 2.2 不同Pod中容器之间的通信 2.3 ...

  8. ADAS 实车道路及场地测试服务

    概述         高级驾驶员辅助系统(ADAS)作为车辆主动安全的关键系统,已经被越来越多的车辆配置.ADAS系统与车辆动力.制动.转向系统有直接耦合,是车辆中可靠性要求很高的控制系统,因此针对A ...

  9. 关于缩短cin时间的方法

    std::ios::sync_with_stdio(false);

  10. An exception has occurred, use %tb to see the full traceback.----parser.parse_args()报错

    一.报错: 原因: 由于在jupyter notebook中,args不为空. 二.问题解决 改成args = parser.parse_args(args=[])