我的Fedora27

桌面

Screenshotfrom2018-03-2600-08-46.png

终端

Screenshotfrom2018-03-2619-44-17.png

GitKraken

Screenshotfrom2018-03-2619-44-47.png

WebStorm

Screenshotfrom2018-03-2619-45-09.png

Chrome

Screenshotfrom2018-03-2619-46-25.png

ss梯子

Screenshotfrom2018-03-2619-48-48.png

感觉还不错。。。

Swagger2使用

练习代码地址

spring-boot-swagger2

Swagger2

它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,
可以让我们在修改代码逻辑的同时方便的修改文档说明。

添加Swagger2依赖

用maven 构建,在pom.xml添加依赖,如下

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
配置Swagger2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.example.demo;

import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
* Created by Dxx on 2017/6/30.
*/

@Configuration
@EnableSwagger2
@ComponentScan("com.example.demo.controllers")
public class Swagger2 {

@Bean
public Docket Api() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("Swagger2 Test API")
.forCodeGeneration(true)
.pathMapping("/")
.select()
.paths(paths())
.build()
.apiInfo(apiInfo())
.useDefaultResponseMessages(true);
}

private Predicate<String> paths() {
return Predicates
.and(PathSelectors.regex("/.*"), Predicates.not(PathSelectors.regex("/error")));
}

private ApiInfo apiInfo() {
Contact contact = new Contact("Dxx", "https://dxx.flowerflash.me/", "dfz@flowerflash.me");
return new ApiInfoBuilder()
.title("Document Api")
.description("Swagger2 Example")
.license("https://www.apache.org/licenses/LICENSE-2.0")
.contact(contact)
.version("1.0")
.build();
}

}
添加Controller API接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.example.demo.controllers;

import com.example.demo.domains.Order;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* Created by Dxx on 2017/6/30.
*/
@RestController
@RequestMapping("/api")
public class OrderController {

@ApiOperation(value = "取得所有订单信息", notes = "124141412" , produces = "application/json")
@GetMapping("/orders")
public List<Order> getUsers() {
List<Order> orderList = new ArrayList<Order>();
for (int i = 0; i < 5; i++) {
Order Order = new Order(i, "OrderNo" + i);
orderList.add(Order);
}
return orderList;
}

@ApiOperation(value = "通过订单ID取得单个订单信息", notes = "124141412", produces = "application/json")
@ApiImplicitParam(required = true, name = "id", value = "用户ID", dataType = "int", paramType = "path")
@GetMapping(value = "/order/{id}")
public Order getUser(@PathVariable("id") Integer id) {
List<Order> orderList = new ArrayList<Order>();
for (int i = 0; i < 5; i++) {
Order Order = new Order(i, "OrderNo" + i);
orderList.add(Order);
}
Order order = new Order();
for (Order o: orderList) {
if (o.getId() == id){
order = o;
break;
}
}
return order;
}
}
运行结果

访问如下地址后:http://localhost:8080/swagger-ui.html

QQ20170630145529.png

最后

总体来说还是挺方便的,还需要努力学习一下。。。。

GitHub pages个性域名实现https访问

Netlify 搭建网站

Netlify 是一家提供静态网络托管服务的初创公司,旨在提升网页加载速度,提升用户网页访问体验。
用GitHub 账号授权登录 Netlify

  • 登录后
    QQ20170612165254.png
  • 选择GitHub
    QQ20170612165336.png
  • 点击blog 的repo
    QQ20170612165925.png
  • Deploy 你的网站
    QQ20170612170139.png
  • 等待一段时间后,如下图所示,我设置我的名字为dxx 于是就可以通过 dxx.netlify.com 来访问我的网站,你的就是你设置的 NAME.netlify.com
    QQ20170612170412.png

启用Https

  • 请到你的域名管理者那里设置CNAME解析,请把dxx 换成你自己的 NAME
    QQ20170612170913.png

  • 然后到 Netlify 添加你的域名或子域名,在Netlify 的官网的 HTTPS 菜单下,勾选上 Let’s Encrypt , 然后如果成功,则如下图所示。
    QQ20170612171233.png

第一次去滴水湖

据说花了好几个亿挖的一个大坑。。。哈哈。。


  • 湖水
    IMG_20170430_143813.jpg
  • 放风筝的人挺多的
    IMG_20170430_135247.jpg
  • 吃饭 (那天去第一天开业,还可以)
    IMG_20170430_130703.jpg
    IMG_20170430_130224.jpg
  • 好大一个鱼 。。。
    IMG_20170430_124223.jpg

滴水湖很大滴水湖很大滴水湖很大!重要的事情说三遍!对于上海这座人潮拥挤的大城市来说,滴水湖开阔的湖面让人觉得豁然开朗,很舒服,还有好些路段基本没人,在那边走走吹吹风安静惬意,虽然海水。。很黄?。全都是黄沙。。但总体不错,值得一去!