观察者模式的理解

1,在观察这模式中,有观察者和被观察者,其中,有主动权的是被观察者,他才是对一切进行操作的类,而观察者只是一双眼睛,根据被观察者的状态改变而做出相应的反应。 2,代码部分: (1)创建观察者接口 package test; //观察者接口 //@Auther dengxt public interface Watcher { public void update(String str); } (2)实现观察者接口 package test; //观察者接口实现 //@Auther de
分类: 其他 发布时间: 03-25 23:48 阅读次数: 0

org.aspectj.lang.ProceedingJoinPoint

一,ProceedingJoinPoint的概述: (1)它是一个对象; (2)作为参数:定义增强处理方法时,将第一个参数定义为该类型,当该增强处理方法被调用时,该类型的对象就代表织入增强处理的连接点。 (3)该对象常用方法: 1,Object[ ] getArgs :返回目标方法的参数; 2,Signature getSignature:返回目标方法的签名; 3,Object getTarget :返回织入增强处理的目标对象; 4,Object getThis : 返回AOP框架为目标对象生
分类: 其他 发布时间: 03-25 23:47 阅读次数: 0

Map集合 把map集合转成set的方法

|--Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。 |--HashMap:底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hashtable. |--TreeMap:底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。 Map集合存储和Collection有着很大不同: Collection一次存一个元素;Map一次存一对元素。 Collection是单列集合;Map是双列集合。 Map中的存储的一对元素:一个是
分类: 其他 发布时间: 03-25 23:47 阅读次数: 0

部署服务器

早些日子想着搭建自己的一台服务器,奈何各方面的因素使之悬而未决,今有幸有机会动手操作一番,想着将其记录下来,方便暴露出问题,还望各路大神多多指点 一,购买服务器 目前市场上服务器可选择较多,这里有一个现在主流云服务器的测评连接:http://www.57aliyun.com/archives/10518; 1,本次只是一次练手并不做后期项目的运行所以采用限时免费的服务器, 如果后期部署上去的项目较大,可以采用100GB的数据盘。 2,进行个人实名认证 3,服务选择 (1)云服务器名称随意起一个
分类: 其他 发布时间: 03-25 23:47 阅读次数: 0

与json相关的转换

JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的
分类: 其他 发布时间: 03-25 23:46 阅读次数: 0

一,SpringBoot——安装spring boot CLI

一,下载分发包 http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.3.0.RELEASE/spring-boot-cli-1.3.0.RELEASE-bin.zip 二,解压安装 下载完成之后,把它解压到文件系统的任意目录里。在解压后的目录里,你会找到一个bin 目录,其中包含了一个spring.bat脚本(用于Windows环境)和一个spring脚本(用于Unix环境)。 把这个bin目录添加到
分类: 其他 发布时间: 03-25 23:46 阅读次数: 0

二,springboot——简单项目实战

一,概述 springboot 的本质还是spring,他们之间的区别就在与简化了一些配置文件的操作和依赖的管理; 举个例子: 比如你从商家买了一个结构复杂的桌子,按照spring的模式,它会把零件发给你,组装是你自己的事情。而这张桌子是在你组装好后才能使用它多种多样的功能。 而按照springboot的模式,他相当于直接把这个桌子发给你,你只需要知道你想要桌子的型号和功能,买回来就能很快速的使用。 二,重点介绍; (1)起步依赖; (2)自动配置; 问题来了,什么是起步依赖呢?依赖我们知道,
分类: 其他 发布时间: 03-25 23:46 阅读次数: 0

印刷文字识别-行驶证识别使用记录

一,前言 因业务需要,系统需要实现行驶证识别功能。本着节约时间成本,循序渐进的原则,该功能直接调用阿里的相关接口,现将调试过程记录在下。 二,正文 1,接口地址: https://market.aliyun.com/products/57002003/cmapi011791.html?spm=5176.2020520132.101.5.2dbb7218f8T1AG#sku=yuncode579100000 2,在线调试: 3,接下来就是把这项功能移动到项目当中去 (1)antd+react前端
分类: 其他 发布时间: 03-25 23:46 阅读次数: 0

负载均衡策略接口及相关实现

分类: 其他 发布时间: 03-25 23:45 阅读次数: 0

antd级联框Cascader动态加载的用法

一,官方文档:https://ant.design/components/cascader-cn/#header 二,具体代码(以根据产品类型获取产品为例): import React, { Component } from 'react'; import { Cascader,Form,} from 'antd'; //级联获取产品类型 const getProductType= () => axios.post(config.HOST + '/work/getProductType'
分类: 其他 发布时间: 03-25 23:45 阅读次数: 0

一,SpringCloud微服务:创建服务注册中心

一,什么是微服务架构 将一个完整的系统,按各功能拆分开来并独立于各自服务器上的单元。该单元就是微服务。 那么什么是“微服务架构”呢?简单的说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,每个服 务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如RESTful API的方式互相调用。 二,SpringCloud简介 SpringCloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理,服务发现,断路器,智能路由,微
分类: 其他 发布时间: 03-25 23:45 阅读次数: 0

文件操作相关的系统函数

重点学习:stat(fstat、lstat 获取文件属性)、access(测试指定文件是否拥有某种权限)、chmod(改变文件的权限)、chown(改变文件的所属主和所属组)、truncate(截断或拓展文件)、link(创建硬链接)、symlink(创建软链接)、readlink(读软链接对应的文件名,即软链接本身的内容,文件路径)、unlink(删除符号链接、硬链接数减1、临时文件关闭时自删除)、rename(文件重命名,注意该函数是C库函数,不是系统函数)。 stat 命令:用于获取文件
分类: 其他 发布时间: 03-25 23:44 阅读次数: 0

stat函数(stat、fstat、lstat)

#include <sys/types.h> #include <sys/stat.h> #include <unistd.h> //需包含头文件 有如下三个函数的函数原型: int stat(const char *path, struct stat *buf); 第一个形参:指出文件(文件路径); 第二个形参:出参数(函数对该参数操作,然后传出)。 int fstat(int fd, struct stat *buf); fstat函数与stat函数的功能一样,只是第一个形参是文件描述符。
分类: 其他 发布时间: 03-25 23:44 阅读次数: 0

access、strtol函数的使用(后者为C库函数)

#include <unistd.h> int access(const char *pathname, int mode); 作用:检查调用该函数的进程是否可以对指定的文件执行某种操作。 第一个形参:文件名;第二个形参:R_OK(是否可读)、W_OK(是否可写)、X_OK(是否可执行)、F_OK(文件是否存在);返回值:0表示拥有所查的权限(即符合该权限)、-1(未通过所查询的权限或者发生了其它错误,详情看perror和errno)。 //代码 #include <stdio.h> #in
分类: 其他 发布时间: 03-25 23:44 阅读次数: 0

chmod、chown函数的使用

#include <sys/stat.h> int chmod(const char *path, mode_t mode); int fchmod(int fd, mode_t mode); 作用:改变指定文件的权限。第二个参数:mode必须为一个8进制数;返回值为0表示成功,-1表示失败。 //代码 #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> int main(int argc, char* argv[])
分类: 其他 发布时间: 03-25 23:43 阅读次数: 0

truncate、rename函数的使用

#include <unistd.h> #include <sys/types.h> int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length); 作用:用于拓展或截断文件。将参数path 指定的文件大小改为参数length 指定的大小。如果原来的文件大小比参数length大,则超过的部分会被删去。与lseek函数拓展文件的区别是,该函数在拓展文件后不再需要向文件进行额外的写操作。 0 成功
分类: 其他 发布时间: 03-25 23:43 阅读次数: 0

link、symlink、readlink、unlink函数的使用

#include <unistd.h> int link(const char *oldpath, const char *newpath); 作用:创建一个硬链接 0成功 -1 失败 //代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char* argv[]) { if(argc < 3) { printf("a.out oldpath ne
分类: 其他 发布时间: 03-25 23:43 阅读次数: 0

目录操作相关的系统函数

主要介绍几个常用函数的使用方法:chdir(改变进程的当前工作目录)、getcwd(获取当前进程的工作目录)、mkdir(创建目录)、rmdir(删除空目录)、opendir(打开一个目录)、readdir(读目录)、closedir(关闭目录)。后三个函数常常用到! 另外,介绍几个常用的字符串函数:strcmp和sprintf函数。 #include <string.h> int strcmp(const char *s1, const char *s2); 作用:比较两个字符串s1和s2。
分类: 其他 发布时间: 03-25 23:43 阅读次数: 0

chdir、getcwd、mkdir、rmdir函数

#include <unistd.h> int chdir(const char *path); int fchdir(int fd); 作用:改变调用这一函数的进程(即程序执行)的当前工作目录,注意不是shell的当前工作目录。 返回值:0成功 -1失败 #include <unistd.h> char *getcwd(char *buff, size_t size); 作用:获取当前进程的当前工作目录。在返回值或者buff中。 返回值:成功则返回进程的当前工作目录;失败,返回NULL 且可
分类: 其他 发布时间: 03-25 23:42 阅读次数: 0

opendir、readdir和closedir函数

注意:在Linux中,目录的输入格式:/mnt//fghs、/mnt/fghs、/mnt/fghs和/mnt/fghs//是等效的,都一样。 #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); DIR *fdopendir(int fd); 返回值:出错返回NULL,并可以通过perror函数查看详细错误信息;成功,则返回一个DIR *类型的指针,该指针指向一个DIR类型的结构体,该结构体描述了所
分类: 其他 发布时间: 03-25 23:42 阅读次数: 0