- 博客(45)
- 问答 (1)
- 收藏
- 关注
原创 java 观察者模式(四)Observable 和 Observer 实现
虽然不推荐使用了,但是可以作为了解看看,实现起来不是特别复杂。加上业务的话可能会繁琐,需要理解透彻。
2023-05-09 14:57:38 458
原创 java 观察者模式(三)Subject 和 Observer 实现
从测试代码上看,优点是主题不需要知道观察者的处理,一定程度保证了松耦合,有新观察者时可以直接实现抽象主题类即可,也符合开闭原则,缺点是主题需要知道所有观察者并将观察者注册进来才能通知。这是又一种观察者模式的实现方式,可以根据项目需求选择不同实现方式。
2023-05-09 14:46:07 733
原创 java 观察者模式(二)ApplicationContext 实现方法二
该篇主要介绍了 ApplicationContext 实现观察者模式在项目中的使用,只是简单举个例子,还要根据项目情况不同做不同处理。
2023-05-08 14:34:00 192
原创 java 观察者模式(一)ApplicationContext 实现
这只是一个最基本的调用及实现方式,在真实业务场景下,当事件被触发时,不会简单输出一句话,而是有其他业务处理,如操作数据库等。观察者模式通常的应用场景是: 当发生一个行为时,其他依赖于该行为的行为或数据要相应变化时,不用在当行为发生时,每个业务都处理,而是让监听者统一处理。此处只是举例说明使用方式,真实项目上一般不会这么用,会有其他业务处理。
2023-05-08 14:21:26 171
原创 springboot 集成 ELK 示例
一 环境准备windows 系统springboot:2.1.3.RELEASEelasticsearch: 6.2.2kibana: 6.2.2logstash: 6.2.2Java:1.8其他环境:springdata, mybatis, mysql 等强调:elasticsearch, kibana, logstash 版本一定要匹配二 集成前环境测试2.1 elasticsearch 测试下载 elasticsearch, 解压到指定目录,该步骤网上有很多教程,不细说了,解压后
2022-01-19 14:46:50 4764 2
原创 java 疑难杂症(三)springboot + spring data + elasticsearch 集成问题
一 背景描述spring boot:2.5.3elasticsearch: 6.2.2 (https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-2)kibana: 6.2.2 (https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-windows-x86_64.zip)使用 sprintdata 集成 elasticsearch 时,先下载的 elasti
2022-01-10 17:31:43 859
原创 java 疑难杂症(二)StringRedisTemplate could not be found 问题解决
一 问题描述在使用 redis 中的 StringRedisTemplate 后,启动项目,启动失败,报错为:二 环境背景背景环境不同可能出现不同的问题,或者相同的问题,列一下背景,方便直接定位解决方案是否可行。springboot 2.x三 问题原因先列一下操作步骤,然后分析错误原因,先引入依赖, <dependency> <groupId>org.springframework.boot</groupId> <artifactId&
2022-01-04 09:31:48 2639 1
原创 java 疑难杂症(一)springboot 项目启动不起来又没有报错
一 问题新建了一个sprintboot 项目,启动时启动不起来,刚启动就关闭,还没有报错信息,启动类利用 try catch 也捕获不到异常,启动后现象如下:二 解决办法查看了网上的解决办法,没有效果,但是大体思路都是认为依赖冲突导致的,所以查看 pom 文件,试了多次终于成功,发现是 web 包和 tomcat 包同时存在引起的,所以把 tomcat 依赖注释掉就好用了。原 pom 文件依赖是:<dependencies> <dependency> <g
2021-12-08 10:57:01 4393 3
原创 使用 xpath 或者 string 生成 xml 文件节点
一 前言有需求是要用 xpath 或者 string 的路径创建 xml 文件的节点,不想一个节点一个节点的生成,判断是否已经生成了父节点等业务逻辑,在网上找了两三天,终于找到了一个方法,做个记录。二 实现如路径:/abc/bcd/cde/id/abc/bcd/cde/text/abc/ef/id实现代码为:// 其中参数 document 可以为某一父节点,或者 document,path 为想要创建节点的路径Document document = DocumentHelper.cre
2020-12-11 14:07:27 653
原创 python 深度学习之tensorflow v2.3(四)
一 tesnsorflow 读取 csv 文件创建一个 py 文件,文件内容为:import tensorflow as tf# 第七个例子 tensorflow 读取 csv 文件# !!! 注意 csv 文件的格式,有逗号分隔,csv 文件格式错误导致程序一直报错# 1.导入所需的模块并声明全局变量tf.compat.v1.disable_eager_execution()DATA_FILE = 'text1.csv'# !!! 最后输出结果的行数与该参数有关BATCH_SIZE =
2020-11-24 11:18:40 260
原创 python 深度学习之tensorflow v2.3(三)
一 tensorflow 实例发现直接实现神经网络,理解起来有些困难,经过学习整理了几个 tensorflow 使用基础实例。import tensorflow as tf# 第一个例子# tf.compat.v1.disable_eager_execution()# message = tf.constant('hello world')# with tf.compat.v1.Session() as sess:# print(sess.run(message).decode())
2020-11-24 11:10:56 327 1
原创 java 文件比对(四)-- 使用 diffutils
一 需求实现比对两个文件,第四种方法,使用 diffutils 库。二 实例2.1 准备创建 maven 项目导入 diffutils 库到 pom.xml 文件中 <dependency> <groupId>com.googlecode.java-diff-utils</groupId> <artifactId>diffutils</artifactId> <version>1.2.1</ve
2020-11-05 13:39:56 5901 3
原创 java 文件比对(三)-- 使用 xmlUnit
一 需求实现比对两个文件,第三种方法,使用 xmlUnit 库,可以比对 xml 的工具。二 实例2.1 准备创建 maven 项目导入 xmlUnit 库到 pom.xml 文件中 <dependency> <groupId>xmlunit</groupId> <artifactId>xmlunit</artifactId> <version>1.6</version> <s
2020-11-05 13:18:57 1908 3
原创 java 文件比对(二)-- 使用 CommandVisitor
一 需求要求希望实现可以用 java 比对两个 xml 文件的不同,第二种方法,使用 CommandVisitor 实现。二 实例2.1 准备准备 一个 difftemplate.html 文件,文件内容为:<!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>
2020-11-05 11:19:46 962 4
原创 java 文件比对(一)-- 使用 diff_match_patch
一 要求希望实现可以用 java 比对两个 xml 文件的不同,在网上找了很久,有各种各样的比对方法,大多数都是文本比对,现记录下来,第一种,使用 diff_match_patch 库实现二 实例2.1 准备在网上搜索 diff_match_patch 的git 源文件下载下来,将 java 源文件放在 项目 src 路径下。准备两个需要比对的文件(最好是文本文件),我这里准备的是 xml 文件。创建 java 项目,准备工作完成。2.2 比对import xxx.diff_match_
2020-11-05 10:35:32 2806
原创 Linux shell 实用(一)
一 使用-n 判断其后变量是否为空-z “string” 判断其后 string 长度是否为零,为零时,返回true。eg: if [ -z “abc” ], z 为小写,且 中括号前后都有一个空格,否则报错find -mtime 使用方法:find / -amin -30 -ls # 查找在系统中最后30分钟访问的文件find / -atime -2 -ls # 查找在系统中最后48小时访问的文件find / -mmin -10 -ls # 查找在系统中最后10分钟里修改过的文件find
2020-10-20 17:19:46 131
原创 python 深度学习之tensorflow v2.3(二)
一 第一个神经网络实例参照《TensorFlow自然语言处理-图姗 加格内达拉》 书籍学习,经整理形成文档。1.1 神经网络步骤:准备数据定义 tensorflow 图运行神经网络中间还有许多小步骤,会逐一介绍1.2 代码实例:import structimport gzipimport osfrom six.moves.urllib.request import urlretrieveimport numpy as np# import matplotlib as plti
2020-09-07 15:29:33 2004 2
原创 python 深度学习之tensorflow v2.3(一)
一 学习实例11.1环境准备暂时用的 python 版本是 3.8anaconda url: https://www.continuum.io/downloadshttps://docs.continuum.io/anaconda/install/sckikit-learn url: http://scikit-learn.org/stable/install.htmlNLTK url: https://www.nltk.org/install.htmlmatplotlib url: htt
2020-08-25 15:57:04 1269
原创 quartz 创建、更新及删除用法示例
1 前言之前使用 quartz 进行过简单实验,体验过 quartz 进行最基本的调度,接下来深入研究更改时间调度和删除调度。目的是为了体验 quartz 的更新及删除操作,所以不做层次分离,所有方法都放在 controller 层来写,然后使用 swagger 进行测试(没有配置 swagger, 就直接在浏览器中输入链接也可以)。2 添加依赖在 springboot 项目中的 pom.xml 文件中添加 quartz 依赖:<dependency> <groupId>
2020-06-09 17:10:28 1026 2
原创 springboot 集成 swagger-bootstrap-ui 实例
1 添加依赖还是上篇文章使用过的springboot 项目即可,或者准备新的包含controller 方法的springboot 简单小项目也可以,在 pom.xml 文件中添加 swagger-bootstrap-ui 依赖: <!-- Add support for swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>sprin
2020-06-09 14:38:38 556
原创 springboot 集成 swagger 实例
1 添加依赖准备一个简单的有controller 的springboot 项目(简单的有几个方法就可以)。在 springboot 项目的 pom.xml 文件中添加 swagger 依赖:<!-- Add support for swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</art
2020-06-09 11:01:11 694
原创 quartz 使用示例
1 添加依赖在 springboot 项目的 pom.xml 中添加依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.1</version> </dependency> <dependency> <grou
2020-06-03 13:33:36 663
原创 RobotFramework 配置及测试
1 安装Windows10 + python3.81.1 安装 python地址:https://www.python.org/, 下载合适的版本,并配置环境变量。安装并配置成功后,可以用 cmd 命令检查安装是否成功。打开 cmd 后,使用命令:python出现 python 版本等信息时证明安装及配置成功。1.2 安装 robot 及其相关1.在线安装robotframwork,在cmd命令下输入:pip install robotframework2.在线安装wxpython,在c
2020-05-28 16:58:07 634
原创 微信小程序开发实战(二)开发及测试
1 实战案例:比较数字大小根据上节内容创建一个初始项目,项目名称为 compare在 app.json 文件里修改内容为:"pages": [ "pages/index/index" ]意思为新增一个 index 页面,会在 pages/index 目录下创建 index.js、index.json、index.wxml、index.wxss这4个文件。 .js 文件为逻辑文...
2020-04-14 16:10:56 1787
原创 微信小程序开发实战(一)
1 微信小程序环境搭建进入到微信公众平台 https://mp.weixin.qq.com/,点击右侧“立即注册”会进入到 如下界面:选择小程序,进行小程序注册,添加邮箱,密码,确认密码,验证码后,勾选已阅读并同意,进行下一步,进行邮箱激活。进入到邮箱里点击链接进行激活,激活进行后续设置,选择个人开发设置管理员信息,包括身份证上的姓名,身份证号,手机号及发送到手机号上的验证码,之后需要用...
2020-04-03 19:46:20 5382
原创 Python scrapy 爬虫入门(八)文件和图片下载
1 文件下载项目目的:爬取seaborn案例源文件seaborn的网址为http://seaborn.pydata.org/应用案例展示的网址为http://seaborn.pydata.org/examples/index.html进入想要创建项目的目录,创建爬虫项目seaborn_file_download# dir 为要创建项目的目录cd dirscrapy startproj...
2020-03-27 22:12:07 307
原创 Python scrapy 爬虫入门(七)突破反爬虫技术
1 反爬虫技术及突破措施1.1 降低请求频率降低请求频率以模仿人类用户,而不是机器。settings.py中设置DOWNLOAD_DELAY即可# 即两次请求间隔为 3 秒DOWNLOAD_DELAY = 3另外,为了防止请求过于规律,可以使用RANDOMIZE_DOWNLOAD_DELAY设置一个介于0.5* DOWNLOAD_DELAY和1.5 *DOWNLOAD_DELAY之间...
2020-03-25 16:06:36 649
原创 Python scrapy 爬虫入门(六)模拟登录
1 构造登录请求构造一个登录请求,将用户登录的信息作为参数一起传递给网站服务器。但是如果登录时有验证码,这种方法就不行了。1.1 实现data 里面的数据是登录时提交的表单数据,可以在“开发者工具”中查看。parse 里面处理登录是否成功的逻辑。如果登录成功,就由 parse_doulist 处理接下来的爬取数据的逻辑。parse_doulist 处理爬取数据的逻辑,和其他爬虫逻辑一样...
2020-03-24 17:51:41 744
原创 Python scrapy 爬虫入门(五)动态渲染页面的爬取(selenium 和 splash)
1 Selenium实现动态页面爬取1.1 安装python 支持的Selenium库pip install selenium1.2 安装浏览器驱动程序chromedriver 的下载地址:https://chromedriver.storage.googleapis.com/index.html 或者 http://npm.taobao.org/mirrors/chromedriver...
2020-03-20 17:08:02 2564
原创 Python scrapy 爬虫入门(四)爬虫数据存储到数据库
1 存储到 mysql 数据库1.1 创建数据库确认有 mysql 环境创建数据库及表 hot,创建 hot 表的sql 为:CREATE TABLE `hot` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT 'primary key', `name` varchar(50) COLLATE utf8_bin DEFAULT NULL...
2020-03-02 15:34:42 639
原创 Python scrapy 爬虫入门(三)scrapy 爬虫示例
要实现爬虫功能,只要执行四个步骤:定义spider 类确定 spider 的名称(name)获取初始化请求(start_request)解析数据 parse()
2020-02-26 17:48:27 536
原创 Python scrapy 爬虫入门(二)scrapy 框架基础
1 scrapy 安装1.1 scrapy 安装进入 cmd 界面,使用命令:pip install scrapy1.2 安装问题如果因为权限原因导致安装失败,就以管理员身份运行 cmd,再使用上面的命令。如果出现 Microsoft Visual C++14.0 is required 错误,则在安装 Anaconda 之后执行命令:conda install -c scrapi...
2020-02-21 16:23:17 226
原创 python scrapy爬虫入门(一)环境搭建及xpath 基础
1 环境搭建环境搭建前准备:python(一定要是 python3)windows 系统1.1 下载及安装 Anaconda使用 Anaconda 安装 scrapy 来避免一些安装错误下载地址:https://www.anaconda.com/download/,或者对应的镜像地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archi...
2020-02-20 17:12:15 759
原创 Python + Django 创建用户项目实例
1 环境python 3.7(一定要是python3)djangowindows 系统mysql 数据库编写工具用 IDEA 或者 pycharm 都可以构建项目之前确认 python 等环境已搭建好(环境变量等都配好)2 项目构建2.1 创建项目用 cmd 命令进入要创建项目的目录## dir 为要创建项目的目录cd dir创建一个 Django 项目:django-...
2020-02-19 15:47:27 592
原创 Python——生成二维码
1 使用 MyQR 生成二维码先安装 myqr,使用 cmd 命令:pip install myqr如果安装失败,可以尝试使用管理员身份启动 cmd,再次安装试试python 代码为:from MyQR import myqr;myqr.run(words="https://www.baidu.com", picture="C:\\Users\\ChengYuanFeng\\Deskt...
2020-02-08 09:49:10 853
原创 Linux 入门(六)软件安装
内容来源于实验楼,经过学习整理成文档备份Linux 的软件安装主要有四种方式:在线安装从磁盘安装deb软件包从二进制软件包安装从源代码编译安装1 apt 的使用(在线安装)apt-get 是用于处理 apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等1.1 apt 的常用工具:install 其后加上软件包名,用于安装一个软件包update 从软件源镜像服务器...
2020-02-07 17:22:53 1963
根据黑马程序员的 redis 课程自学做的 redis 笔记,备份一下
2023-02-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人