zoukankan      html  css  js  c++  java
  • SpringBoot框架 之 Druid与Swagger2

    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()
    	忽略方法
    
  • 相关阅读:
    VC CUtilityLZW 效率还行的LZW压缩算法,随机数加密
    VC CQHashNTBuffer 牛逼的Hash表 UINT32
    VC CHashBuffer 牛逼的hash表算法,字符串查找块了100倍
    关闭Fedora防火墙
    gnome 屏幕截图
    zynq -- arm-xilinx-eabi-路径
    Fedora 14安装出现的错误
    fedora19安装后,需要安装的一些必备的软件包
    zynq -- cannot find -lxil
    Zynq -- 启动过程
  • 原文地址:https://www.cnblogs.com/mumuyinxin/p/11316861.html
Copyright © 2011-2022 走看看