月度归档:2021年04月

Springboot集成swagger

1.引入jar包

		<!-- springfox-swagger -->
	    <dependency>
	        <groupId>io.springfox</groupId>
	        <artifactId>springfox-boot-starter</artifactId>
	        <version>3.0.0</version>
	    </dependency>

2.编写配置类

package com.qyc.Microservice.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.AbstractEnvironment;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


/**
 * 访问地址:
 *   /swagger-ui/index.html
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
	
    @Autowired
    private AbstractEnvironment env;
	
    @Bean
    public Docket createRestApi() {
    	//是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置
    	String swaggerflag = env.getProperty("swagger.enable");
    	
    	if("true".equals(swaggerflag)){
            return new Docket(DocumentationType.SWAGGER_2)
                    .pathMapping("/")
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.qyc.Microservice.controller"))
                    .paths(PathSelectors.any())
                    .build().apiInfo(new ApiInfoBuilder()
                            .title("项目接口接口说明")
                            .description("详细信息......")
                            .version("1.0")
                            .contact(new Contact("JoePotter","https://www.cnblogs.com/JoePotter/","252177507@qq.com"))
                            .license("The Apache License")
                            .licenseUrl("https://www.cnblogs.com/JoePotter/")
                            .build());
    	}else {
            return new Docket(DocumentationType.SWAGGER_2)
                    .pathMapping("/")
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.qyc.Microservice.controller"))
                    .paths(PathSelectors.any())
                    .build().apiInfo(new ApiInfoBuilder()
                            .title("项目接口接口说明")
                            .description("详细信息......")
                            .version("1.0")
                            .contact(new Contact("JoePotter","https://www.cnblogs.com/JoePotter/","252177507@qq.com"))
                            .license("The Apache License")
                            .licenseUrl("https://www.cnblogs.com/JoePotter/")
                            .build()).enable(false);
    	}
    }
}

3.对接口和实体类添加注释,生成doc。常用的标记如下

@Api()用于类;
标识这个类是swagger的资源
  tags–表示分组说明标签

@ApiOperation()用于方法;
表示一个http请求的操作
  value用于方法描述

  notes用于提示内容

@ApiModel()用于实体类
表示对类进行说明,用于参数用实体类接收

value–表示对象名
description–描述

@ApiModelProperty()用于实体类字段
表示对model属性的说明或者数据操作更改
  value–字段说明
  name–重写属性名字
  dataType–重写属性类型
  required–是否必填
  example–举例说明
  hidden–隐藏

@ApiImplicitParam() 用于 controller 方法
表示单独的请求参数
  name–参数ming
  value–参数说明
  dataType–数据类型
  paramType–参数类型
  example–举例说明

@ApiImplicitParams() 用于 controller 方法,包含多个 @ApiImplicitParam

@ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上

说明:简单的标记只需要@Api(tags=””) 和 @ApiOperation(value=””,notes=””)

@RestController
@RequestMapping("/user")
@Api(tags = "用户登录")
public class LoginController extends BaseController {

	@Autowired
	private UserService userService;
	
	@PostMapping("/save")
	@ApiOperation(value = "新建用户!",notes = "提示信息。")
	public void save(@Valid User user) {
		userService.saveMapper( user);
	}

  

 

Xmind8默认打开文件在当前目录出现临时文件问题修改为红色文字部分

-configuration
@user.home/AppData/Roaming/XMind/configuration-cathy_win32
-data
@user.home/AppData/Roaming/XMind/workspace-cathy
-startup
plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.400.v20160518-1444
--launcher.defaultAction
openFile
-eclipse.keyring
@user.home/Application Data/XMind/secure_storage
-vmargs
-Dfile.encoding=UTF-8
-Xms128m
-Xmx1024m
-XX:MaxPermSize=256m

  

nginx centos 服务开机启动设置实例详解

这篇文章主要介绍了nginx centos 服务开机启动设置实例详解的相关资料,这里对服务开机启动做了详细的步骤介绍,需要的朋友可以参考下

 

nginx centos 服务开机启动设置

 

建立服务文件

以nginx 为例

vim /lib/systemd/system/nginx.service 

在nginx.service 中插入一下内容

 

[Unit] 
Description=nginx 
After=network.target 

[Service] 
Type=forking 
ExecStart= 服务启动命令
ExecReload= 服务重启命令
ExecStop=服务停止命令
PrivateTmp=true 

[Install] 
WantedBy=multi-user.target 

  

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

以754的权限保存在目录:/lib/systemd/system 

设置开机自启动:

systemctl enable nginx.service

相关命令

功能                                       cnetos7以前                                          cnetos7
显示所有已启动的服务            chkconfig –list                 systemctl list-units –type=service

启动某服务       service nginx start systemctl             start nginx.service 或 systemctl start nginx

停止某服务       service nginx stop systemctl             stop nginx.service 或 systemctl stop nginx

重启某服务       service nginx restart                    systemctl restart nginx.service 或 systemctl restart nginx

使某服务自动启动     chkconfig –level 3 nginx  on       systemctl enable nginx.service 或 systemctl enable nginx

使某服务不自动启动     chkconfig –level 3 nginx off    systemctl disable nginx.service 或 systemctl disable nginx

检查服务状态       service nginx status                 systemctl is-active nginx.service (仅显示是否)Activesystemctl status nginx.service (服务详细信息)