- 博客(39)
- 收藏
- 关注
原创 关于定时任务及线程池的一点点心
用于控制总体的线程执行边界,比如多线程处理一个列表大小为1000的数据,初始化countdownLatch为size,每次提交线程后,countdownLatch减小,当countdownLatch减至0,(若主线程需等待,执行countdownLatch.await())执行完毕。tips:调用shutdown()或者shutdownNow()后,需要重新创建线程池。核心线程数,最大线程数,线程活跃时间,时间单位,工作队列,线程工厂,线程池拒绝策略。:丢弃队列最早的未处理任务,然后重新尝试执行任务。
2023-04-04 15:25:09
433
原创 fastdfs 安装部署(linux)
下载 下载libfastcommon、fastdfs、fastdfs-nginx-module wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gz wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gz wget https://github.com/
2022-01-28 14:16:59
765
2
原创 fastdfs 沧海一粟
fastdfs 的冰山一角 基本点 访问方式: http (必要时,配置nginx) 核心服务组件: tracker–跟踪服务器,均衡调度所有的storage服务和group,(客户端与数据服务器交互的桥梁) storage–存储服务器,提供存储和备份服务,以group为单位,每个group中有多个storage,互为备份,每个storage在启动后会连接 Tracker,同步自己所属group等信息,并保持周期性心跳 Client:客户端,上传下载数据请求的发起方,通过专有接口,使用TCP/IP协
2022-01-28 13:43:01
2347
原创 netty学习笔记(二)Promise与Future
netty学习笔记(二)Promise与Future 先来概述下两者之间与JDK future之间的关系 Netty Future继承了JDK的Future 同时加强了JDk future的一些功能,比如异步处理,同步获取结果 而Promise继承了Netty Future,他可以做到异步的处理,异步的获取结果 Future 先来看一段代码 // 获取线程池 NioEventLoopGroup eventExecutors = new NioEventLoopGroup();
2022-01-19 22:08:09
585
原创 Schedule未能成功启动定时任务解决方案
Schedule未能成功启动定时任务解决方案 查看是否开启schedule注解 启动类 @SpringBootApplication @EnableScheduling @EnableAsync public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); 定时任务类 /** * 设备服务器监控 * 容器启动后直接执行该定时任务,然后延迟1
2022-01-18 11:38:43
1453
原创 Netty学习笔记(一) 客户端与服务端的搭建
Netty学习笔记(一) 客户端与服务端的搭建 客户端 ChannelFuture channelFuture = new Bootstrap() .group(new NioEventLoopGroup()) .channel(NioSocketChannel.class) .handler(new ChannelInitializer<NioSocketChannel>() {
2022-01-06 20:27:30
1310
原创 Retrofit简单使用总结
Retrofit简单使用总结 前言 Retrofit是一个restful的http请求框架的封装,其网络请求并不是由retrofit去发送,而是由其内部封装的okhttp去处理。retrofit主要专注于对于接口的封装,而OkHttp专注于网络请求的发送以及请求发送的高效 应用使用retrofit发送请求时的流程如上,应用通过retrofit对请求接口进行封装,retrofit再去调用其内部封装的OkHttp进行请求的发送,接受请求也是由OkHttp去呈递给Retrofit,最终展示给应用。 其在gith
2021-09-17 11:25:29
467
原创 Retrofit2.0 注解含义总结
Retrofit2.0 注解含义总结 1. 注解类型 retrofit提供三种注解类型,分别为网络请求方法注解,标记注解,和网络请求参数注解 网络请求方法注解:@GET @POST @PUT @DELETE @PATH @HEAD @OPTIONS @HTTP 前七种对应http1.1规定的其中的请求方式,注解应该指定一个请求的URL,也可以不指定,交给HTTP注解去处理,http注解可以替换之前的七个注解并且定制更多的功能扩展 标记注解:@FormUrlEncoded @Multipart @Stream
2021-09-17 11:19:44
894
1
原创 vue整合elementUI
Vue整合elementUI 壹 安装node.js 安装vue和vue-cli cnpm install vue cnpm install vue-cli -g 初始化vue-cli vue init webpack ![安装可选项][id_1] 是否安装eslint语法检查以及单元测试根据自己的需求而定 在终端运行安装命令npm i element-ui -S ![安装结果展示][id_0] 初始化后的目录结构如图: 运行下试试看npm run dev 至此,搭
2021-07-28 09:57:06
171
原创 vue展开折叠侧导航栏
Vue展开折叠导航栏出现的问题(click触发两次)以及替换策略 1. 整合elementUI的导航栏出现的问题 壹 打开所给模板代码来看 <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;"> <el-radio-button :label="false">展开</el-radio-button> <el-radio-button :label="true">收起<
2021-07-27 17:35:38
2170
原创 Springboot中使用pageHelper插件
Springboot中使用pageHelper插件 都知道pagehelper是一个MyBatis的分页插件,其实在如今的前后端分离项目中,我们使用该插件的机会并不多。但我还是觉得这部分内容还是应该学习和掌握的,毕竟我们应该善其身而兼济天下。 ok,我准备从以下几个方面来说一下pagehelper。 优点 无需你自己去封装以及关心sql分页等问题,使用很方便,前端取数据也很方便。 我们...
2020-01-21 21:28:48
960
原创 idea中SpringBoot项目的热部署
idea中SpringBoot项目的热部署 引入springboot-devtools(关于该工具的详细描述,可以参考官方文档) devtools 是Spring Boot的一组额外的工具,可以使应用程序开发体验更加愉快。spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时间功能。要包含devtools支持,请将模块依赖项添加到您的构建中,如以下Maven方式引...
2020-01-20 23:21:17
248
原创 修改idea 的terminal终端为GitBash
进入设置,找到tools字段 进入terminal,在其中的shell path栏中填写自己的gitbash安装位置 3. 检查 之前配好的,勿怪
2020-01-11 19:13:59
531
原创 SpringBoot与消息队列
SpringBoot与消息队列 参考文案:https://blog.csdn.net/HD243608836/article/details/80217591 https://www.jianshu.com/p/36a7775b04ec 1.什么是消息队列 消息队列,一般简称为mq(message queue),队列是一种常见的数据结构,其特点是先进先出。我们可以将消息队列看作一个存放消息的容...
2019-10-31 21:26:58
1389
原创 SpringBoot与缓存
SpringBoot与缓存 1.JSR107缓存规范 JSR是Java Specification Requests 的缩写 ,Java规范请求 , JSR-107就是关于如何使用缓存的规范。 Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。 CachingProvider定义了创建、配置、...
2019-10-27 21:32:25
279
原创 SpringBoot的Web开发
SpringBoot的Web开发 1.使用SpringBoot 创建SpringBoot应用时,选用我们需要的模块 SpringBoot默认将场景配置好(autoConfiguration),只需在配置文件中指定少量配置 编写业务代码 2.SpringBoot对静态资源的映射规则 public void addResourceHandlers(ResourceHandlerRegi...
2019-09-25 21:38:58
151
原创 SpringBoot日志
SpringBoot日志 1.日志框架 日志框架分为日志门面和日志实现 日志门面:slf4j 日志实现:log4j,log4j2,logback SpringBoot底层为Spring框架,spring默认使用JCL日志门面, 而SpringBoot默认使用Slf4j,实现选用logback 2.slf4j的使用 1.如何在系统中使用slf4j 日志记录方法的调用,不应该针对实现层,而应该对接...
2019-09-10 16:25:50
241
原创 Mybatis中的缓存
title: Mybatis中的缓存 tags: 新建,模板,小书匠 想要了解Mybatis中的缓存机制,我们先来看什么是缓存,简单来说,缓存就是存在于内存中的临时数据。 那么,我们为什么要使用缓存呢,就是为了减少与数据库的交互次数,提高执行效率。 那么问题来了,什么样的数据适合存在于缓存中呢:首先是经常使用且不经常进行增删改查的数据,再有便是数据的正确性对结果影响不大的数据。 于是自然就有不...
2019-07-18 22:15:32
137
原创 Mybatis中的延迟加载与立即加载
在开始使用Mybatis中的延迟加载之前,先给出一点概念,方便理解 延迟加载:延迟加载(lazy load)是(也称为懒加载)Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。(意即需要时再加载数据) 立即加载:无论需不需要,直接加载出来 我们知道数据之间的关系有多种:一对一,一对...
2019-07-16 22:17:55
488
原创 struts_log
title: struts日志问题 tags: 新建,模板,小书匠 第一个问题,缺少log4j-core的jar包 ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the c...
2019-05-20 20:10:46
280
原创 struts创建action的三种方式
title: struts创建action的方式 1. 创建普通action,不需要实现接口或继承超类 public class defaultAction { public String execute(){ System.out.println("这是一个普通的action"); return null; } } 创建一个普通的类,在类中实现...
2019-05-18 16:38:33
615
原创 C语言实现全排列
思路: 求n位字符的全排列,先确定第一个字符,然后n-1个字符进行全排列,对n-1个字符全排列,先确定第二个字符,对n-2个字符全排列。。。。到第n-2个字符时,就是将最后两个字符交换位置。 以具体数组来说明 123的全排列:123,132,213,231,321,312; 具体过程: 1.第一位1,对23进行交换得到全排列:123,132; 2.交换2,1,对13进行全排列:213,231; 3...
2019-04-01 20:20:16
10087
原创 多线程学习笔记(二)静态代理及线程状态
首先代理是一种模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目标对象功能的特点也为多人所用。 图形描述 静态代理的实现比较简单,代理类通过实现与目标对象相同的接口,并在类中维护一个代理对象。通过构造器塞入目标对象,赋值给代理对象,进而执行代理对象实现的接口方法,并实现前拦截,...
2019-03-31 11:45:18
174
原创 多线程学习笔记(一)线程的创建
在我们之前的java语言学习中,我们主要还是以单线程编程为主。但如果是开发一些中型或者稍大型的软件项目来说,单线程显然是不够用的。无论是选课时的教务处服务器,还是双十一高峰时的淘宝,天猫,亦或是春运高潮的12306.要靠单线程实现是显然不够的。 那么,在此之前,我们先了解一下一些基本的概念。 进程:是指计算机中已运行的程序 线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的...
2019-03-28 17:36:38
187
原创 通过反射简化Servlet操作
最近在跟着做一些小功能的时候,发现一个功能模块的实现需要使用到多个servlet(在没有使用任何框架的基础上),在MVC三层架构下以及domain包,这就显得很臃肿,因为仅仅是一个模块就需要这么多的servlet,那么当是一个具体的大型项目,我们的操作就显得不知道怎么说才好。 所以我们需要对代码进行简化,怎么做? 虽然标题是通过反射简化Servlet,但在此之前我们还是写一写没有使用反射机制前应该...
2019-03-25 21:15:16
429
原创 jdbc批处理
批处理 什么是批处理 顾名思义,批处理就是对某一对象进行批量处理,而在jdbc中,批处理具体指的是一次性执行多条SQL语句,允许多条语句一次性提交给数据库批量处理。 为什么使用批处理 一个词,效率,使用批处理比单个执行SQL语句效率要高 在JDBC中如何使用 addBatch(SQL);添加需要处理的SQL语句 executeBatch();执行批处理 数据库支持情况 MySQ...
2019-02-16 13:31:30
881
原创 反射
类的加载时机 当程序要使用某个类时,如果该类还未加载进内存 系统会通过加载,连接,初始化三步来这个类的初始化 1.加载:就是指class文件读入内存,并为之创建一个class对象,任何类使用时系统都会建立一个class对象; 2 连接:验证是否有正确的内部结构,并和其他类协调一致,为类的静态成员分配内存,并设置默认初始化值。 3 初始化:初始化成员变量。 加载时机: 1.创建类的实例 2.访问类的...
2019-01-23 22:07:55
120
原创 JSP基础语法小结(一)
学习任何一种语言,首先要从其语法开始,JSP是基于java语言的动态网页开发技术,继承了java的所有优点。一个JSp页面实际上是由java代码段嵌入到HTML标记中构成的。我会总结一些HTML中使用JSP的基础语法,包括JSP页面构成,JSP注释,JSP指令元素,脚本元素以及动作元素 先说一下jsp页面元素吧 一个JSP页面由两部分组成,一部分是静态部分,如HTML、CSS 标记等,用来完成数...
2019-01-23 16:46:01
637
原创 HTTP请求简述
在开始讨论这个问题之前,我们先了解一下什么是http协议。 http协议:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 其实就是相当于两个来自不同国家的人交流一样,是需要统一语言规范的...
2019-01-19 18:56:02
333
原创 centOS通过命令行安装MySQL
centOS 7 之后,由于一些不知道的原因,导致不能像在Ubuntu上一样通过apt-get语句直接安装服务端和客户端。因而我们需要一些特别的手段。 首先,我们和往常一样进入centOS的root模式,如果您不了解如何进入root模式,请自行百度解决 当命令行头部由$变为#的时候,表示你已进入root模式 运行该命令 yum install mysql-server 忽略最后一句哈,...
2019-01-17 18:18:38
1431
转载 Servlet的生命周期及web.xml的相关配置
Servlet的生命周期 从第一次启用到服务器关闭 如果在web.xml中配置了load-on-startup,则生命周期为从服务器启动到服务器关闭 注意 init()方法是对Servlet初始化的一个方法,会在Servlet第一次加载进内存的时候开始执行 destroy()在Servlet销毁时执行,也就是在服务器关闭的时候 load-on-startup中的数字应该是几? load-on...
2018-12-23 17:51:22
285
转载 IDEA热部署的一些问题
下面转一些语言的热部署对比: 在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署, 对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。 而PHP在开发时就友好多了,修改代码立即生效。 在生产环境运行时,开启了OPcache,只要设定了opcache.revalidate_freq=60,在60秒后修改的代码同样会自动生效...
2018-12-19 22:09:02
549
转载 IDEA搭建servlet运行环境
(一)使用IDEA搭建一个简易的servlet程序 1、创建项目 打开IDEA,选择创建项目 填写完毕,点击next 2、填写项目名 填写完毕,点击finish 3、项目配置 未配置的项目结构如下: 配置流程: (1)在WEB-INF目录下新建两个文件夹,分别命名未classes和lib(classes目录用于存放编译后...
2018-12-19 18:15:40
1950
原创 MySQL事务
什么是事务 事务是一组有着内在逻辑关联的SQL命令。支持事物的数据库系统要么确认同一个事务里的所有SQL命令,要么把他们当作整体全部放弃。也就是说,事务永远不会只完成一部分。 理解 1.不可分割的操作:假设该操作有ABCD四个步骤组成,若ABCD都执行成功,则认为该事务成功,否则,认为事务失败 2.每条SQL语句都是一个事务。 3.事务只对DML语句有效,对于DQL语句无效。 特点 原...
2018-11-03 15:50:04
163
原创 MySQL的数据完整
MySQL的数据完整性 什么是数据完整性: -数据完整性是为了保证用户输入的数据保存到数据库中是正确的 如何添加数据完整性: 在创建表时给表中添加约束 数据完整性的分类: 实体完整,域完整,引用完整 这一次我们主要来看实体完整 实体完整性: 1.什么是实体完整性:表中的一行,一条数据代表一个实体 2.实体完整性的作用:保证每一行数据不重复 3.实体完整性的约束类型:主键约束 ...
2018-10-20 16:53:36
208
原创 ubuntu安装mysql及Java
MySQL 安装mysql服务端: sudo apt-get inistall mysql-sever 安装mysql客户端 sudo apt-get inistall mysql-client 启动MySQL service mysql start 登陆MySQL数据库 sudo mysql -uroot -p 显示当前所有数据库 show databases;...
2018-10-11 17:20:26
324
原创 栈的一些基础操作
栈 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 简单说,就是后进先出 话不多说,直接上代码 “` inc...
2018-08-10 09:51:50
185
原创 链表的相关操作
链表 单链表 链表的插入: s->next=p->next; p->next=s; 链表的删除: 引进一个指针保存p q=p->next; p->next=q->next; 双向链表 链表的插入: s-prev=p; s->next=p->next; p->next->prev=s; p->next...
2018-07-29 20:00:53
356
原创 spider之robots协议(新人小结)
网络爬虫与信息提取 **要求掌握定向网络数据爬取和网页解析的基本能力 希望能够坚持的理念 The website is API………. 想再多磨叽几嘴,还是算了吧,暴露我学艺不精的事实 一个网站想限制网络爬虫,有两个方法:一个是审查来源,一个是通过robots协议来进行告知 Robots.txt 全称:Robots Exclusion Standard 网络爬虫排除...
2018-07-03 20:58:09
1596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅