swagger使用笔记

1. 关于swagger

是一个接口测试框架,用于生成接口文档,暂时接口页面,可以直接在页面进行执行接口,黑盒测试接口的情况!

官网: https://swagger.io/

swagger利用spring-fox将其与spring整合在一起,让我们先来理一理springfox与swagger的关系:

  • swagger是一个六星的API开发框架,这个框架以“开放API声明”(OpenAPI Specification , OAS)为基础,对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,几乎支持所有语言)
  • OAS本身是一个API规范,它用于描述一整套API接口,包括一个接口是GET还是POST请求啊,有哪些参数哪些header啊,都会被包括在这个文件中。它在设计的时候通常是YAML格式,这种格式书写起来比较方便,而在网络中传输时又会以json形式居多,因为json的通用性比较强。
  • 由于Spring的流行,Marty Pitt编写了一个基于Spring的组件swagger-springmvc,用于将swagger集成到springmvc中来。而springfox则是从这个组件发展而来,同时springfox也是一个新的项目,本文仍然是使用其中的一个组件springfox-swagger2。
  • pringfox-swagger2依然是依赖OSA规范文档,也就是一个描述API的json文件,而这个组件的功能就是帮助我们自动生成这个json文件,我们会用到的另外一个组件springfox-swagger-ui就是将这个json文件解析出来,用一种更友好的方式呈现出来。

dubbo使用笔记

最近在研究github的这个项目=> https://github.com/shuzheng/zheng
将其中关于dubbo的使用做一下笔记,方便下次使用。

一、dubbo是什么?

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
戳这里查看具体介绍https://blog.csdn.net/houshaolin/article/details/76408399

节点角色说明:

Provider: 暴露服务的服务提供方;

Consumer: 调用远程服务的服务消费方;

Registry: 服务注册与发现的注册中心;

Monitor: 统计服务的调用次数和调用时间的监控中心;

Container: 服务运行容器

tigase-testsuite测试

参照官方文档:

http://docs.tigase.org/tigase-server/snapshot/Development_Guide/html/#tests

-version = “2.0.0”

测试步骤:

1.添加或修改文件scripts/tests-runner-settings.sh

#!/bin/bash
func_rep="func-rep.html"
perf_rep="perf-rep.html"
db_name="tigasedb"
db_user="root"
db_pass="123"
root_user="root"
root_pass="123"

TESTS=("derby" "mysql" "pgsql" "mssql")
IPS=("127.0.0.1" "192.168.72.130" "127.0.0.1" "127.0.0.1")

server_timeout=1000

server_dir="D:/work/OtherProjects/tigaseTestuite/tigase-server-7.0.4-b3844"
#database="derby"
database="mysql"
server_ip="192.168.72.130"

MS_MEM=100
MX_MEM=1000

SMALL_MS_MEM=10
SMALL_MX_MEM=50

JSP中EL表达式不起作用

StrutsActionForm项目/dynaactionform.jsp中:

用户名称:${dynaForm.map.username }<br>
年龄:${dynaForm.map.age }<br> 

理想状态是输出(根据输入)

用户名称:sherry
年龄:25

但结果偏偏是:

用户名称:${dynaForm.map.username }<br>
年龄:${dynaForm.map.age }<br>

深入理解ThreadLocal

ThreadLocal概述

学习JDK中的类,首先看下JDK API对此类的描述,描述如下:
该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal其实就是一个工具类,用来操作线程局部变量,ThreadLocal 实例通常是类中的 private static 字段。它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。 例如,以下类生成对每个线程唯一的局部标识符。线程 ID 是在第一次调用UniqueThreadIdGenerator.getCurrentThreadId()时分配的,在后续调用中不会更改。

其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。

Centos使用过程中的问题笔记

查看ip地址

[wwl@localhost ~]$ ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.72.131  netmask 255.255.255.0  broadcast 192.168.72.255
        inet6 fe80::20c:29ff:fe9e:b9f7  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9e:b9:f7  txqueuelen 1000  (Ethernet)
        RX packets 156314  bytes 223675777 (213.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 75284  bytes 4659766 (4.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...

中间的192.168.72.131就是本机的ip地址。

Centos常用包管理命令

搜索包

在用 yum 安装包之前,如果不确定要安装的包是什么,可以先去搜索一下。搜索可以判断你想安装的包,能不能通过 yum 去安装,如果没有找到结果,你可能要手工为系统去添加新的仓库,或者把包下载到本地,再用 rpm 去安装。

yum search 关键词

比如你要安装 Apache 这个 Web 服务器,可以搜索一下 apache 或者 httpd ,httpd 是包的名字,apache 这个词包含在包的介绍里。

yum search httpd

返回:

...
httpd.x86_64 : Apache HTTP Server
httpd-devel.i686 : Development interfaces for the Apache HTTP server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
...

Centos下忘记mysql密码的解决方案

1.确认服务器处于安全的状态

也就是没有人能够任意地连接MySQL数据库。
因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。

2.修改MySQL的登录设置:

[root@CentOS ~]# vi /etc/my.cnf

Java中MessageFormat的使用

用于字符串替换,你还在用以下的这种方法吗?

String.format(String format, Object... args)

这是String类型的静态方法,但是除此之外,JDK提供了更好用的字符串替换方法,就是

MessageFormat.format(String pattern, Object ... arguments)

MessageFormat本身与语言环境无关,而与用户提供给MessageFormat的模式和用于已插入参数的子格式模式有关,以生成适用于不同语言环境的消息。

本站总访问量