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()
忽略方法

最新文章

  1. POJ 1144
  2. rabbitmq 3.6 延时消息
  3. [ubuntu]用ubuntu开发的日子----win7 ubuntu双系统
  4. Linux内核参数配置
  5. 关于java中Double类型的运算精度问题
  6. shell test 數值 字符串 文件比較
  7. 数据库事务故障恢复undo日志检查点
  8. Qt源码分析之信号和槽机制
  9. MySQL中的两个时间函数,用来做两个时间之间的对比
  10. Python-方法重载的问题
  11. RF+Jenkins构建持续集成
  12. [ERROR] Fatal error: Can&#39;t open and lock privilege tables: Table &#39;mysql.user&#39; doesn&#39;t exist 160913 02:11:21 mysqld_safe mysqld from pid file /tmp/mysql.pid ended
  13. SQl语句收藏(转)
  14. Maven-04: 三套生命周期
  15. 微信小程序之onLaunch与onload异步问题
  16. vapor 生成xcode project 产生的错误解决方式
  17. Centos7通过SSH使用密钥实现免密登录
  18. handle java
  19. c++选择重载函数
  20. [日常] DNS解析概述

热门文章

  1. JavaScript中setInterval函数应用常见问题之一(第一个参数不加引号与加引号的区别)
  2. CSS-盒模型与文本溢出笔记
  3. 介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现
  4. [LeetCode] 647. 回文子串 ☆☆☆(最长子串、动态规划、中心扩展算法)
  5. vip视频播放
  6. PHP实现智能语音播报
  7. xadmin集成DjangoUeditor,以及编辑器的视频路径配置
  8. linux内核makefile概览
  9. 剑指Offer(二十):包含min函数的栈
  10. anyproxy学习3-修改返回内容(beforeSendResponse)