自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 关于定时任务及线程池的一点点心

用于控制总体的线程执行边界,比如多线程处理一个列表大小为1000的数据,初始化countdownLatch为size,每次提交线程后,countdownLatch减小,当countdownLatch减至0,(若主线程需等待,执行countdownLatch.await())执行完毕。tips:调用shutdown()或者shutdownNow()后,需要重新创建线程池。核心线程数,最大线程数,线程活跃时间,时间单位,工作队列,线程工厂,线程池拒绝策略。:丢弃队列最早的未处理任务,然后重新尝试执行任务。

2023-04-04 15:25:09 362

原创 fastdfs 安装部署(linux)

下载下载libfastcommon、fastdfs、fastdfs-nginx-modulewget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gzwget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gzwget https://github.com/

2022-01-28 14:16:59 667 2

原创 fastdfs 沧海一粟

fastdfs 的冰山一角基本点访问方式: http (必要时,配置nginx)核心服务组件:​ tracker–跟踪服务器,均衡调度所有的storage服务和group,(客户端与数据服务器交互的桥梁)storage–存储服务器,提供存储和备份服务,以group为单位,每个group中有多个storage,互为备份,每个storage在启动后会连接 Tracker,同步自己所属group等信息,并保持周期性心跳Client:客户端,上传下载数据请求的发起方,通过专有接口,使用TCP/IP协

2022-01-28 13:43:01 2271

原创 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 497

原创 Schedule未能成功启动定时任务解决方案

Schedule未能成功启动定时任务解决方案查看是否开启schedule注解启动类@SpringBootApplication@EnableScheduling@EnableAsyncpublic class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class);定时任务类/** * 设备服务器监控 * 容器启动后直接执行该定时任务,然后延迟1

2022-01-18 11:38:43 1254

原创 Netty学习笔记(一) 客户端与服务端的搭建

Netty学习笔记(一) 客户端与服务端的搭建客户端ChannelFuture channelFuture = new Bootstrap() .group(new NioEventLoopGroup()) .channel(NioSocketChannel.class) .handler(new ChannelInitializer<NioSocketChannel>() {

2022-01-06 20:27:30 1239

原创 Retrofit简单使用总结

Retrofit简单使用总结前言Retrofit是一个restful的http请求框架的封装,其网络请求并不是由retrofit去发送,而是由其内部封装的okhttp去处理。retrofit主要专注于对于接口的封装,而OkHttp专注于网络请求的发送以及请求发送的高效应用使用retrofit发送请求时的流程如上,应用通过retrofit对请求接口进行封装,retrofit再去调用其内部封装的OkHttp进行请求的发送,接受请求也是由OkHttp去呈递给Retrofit,最终展示给应用。其在gith

2021-09-17 11:25:29 343

原创 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 743 1

原创 vue整合elementUI

Vue整合elementUI壹安装node.js安装vue和vue-clicnpm install vuecnpm install vue-cli -g初始化vue-clivue init webpack![安装可选项][id_1]是否安装eslint语法检查以及单元测试根据自己的需求而定在终端运行安装命令npm i element-ui -S![安装结果展示][id_0]初始化后的目录结构如图:运行下试试看npm run dev至此,搭

2021-07-28 09:57:06 113

原创 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 2012

原创 Springboot中使用pageHelper插件

Springboot中使用pageHelper插件​ 都知道pagehelper是一个MyBatis的分页插件,其实在如今的前后端分离项目中,我们使用该插件的机会并不多。但我还是觉得这部分内容还是应该学习和掌握的,毕竟我们应该善其身而兼济天下。​ ok,我准备从以下几个方面来说一下pagehelper。优点无需你自己去封装以及关心sql分页等问题,使用很方便,前端取数据也很方便。我们...

2020-01-21 21:28:48 846

原创 idea中SpringBoot项目的热部署

idea中SpringBoot项目的热部署引入springboot-devtools(关于该工具的详细描述,可以参考官方文档)devtools 是Spring Boot的一组额外的工具,可以使应用程序开发体验更加愉快。spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时间功能。要包含devtools支持,请将模块依赖项添加到您的构建中,如以下Maven方式引...

2020-01-20 23:21:17 163

原创 修改idea 的terminal终端为GitBash

进入设置,找到tools字段进入terminal,在其中的shell path栏中填写自己的gitbash安装位置3. 检查之前配好的,勿怪

2020-01-11 19:13:59 451

原创 SpringBoot与消息队列

SpringBoot与消息队列参考文案:https://blog.csdn.net/HD243608836/article/details/80217591https://www.jianshu.com/p/36a7775b04ec1.什么是消息队列消息队列,一般简称为mq(message queue),队列是一种常见的数据结构,其特点是先进先出。我们可以将消息队列看作一个存放消息的容...

2019-10-31 21:26:58 1269

原创 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 208

原创 SpringBoot的Web开发

SpringBoot的Web开发1.使用SpringBoot创建SpringBoot应用时,选用我们需要的模块SpringBoot默认将场景配置好(autoConfiguration),只需在配置文件中指定少量配置编写业务代码2.SpringBoot对静态资源的映射规则public void addResourceHandlers(ResourceHandlerRegi...

2019-09-25 21:38:58 109

原创 SpringBoot日志

SpringBoot日志1.日志框架日志框架分为日志门面和日志实现日志门面:slf4j日志实现:log4j,log4j2,logbackSpringBoot底层为Spring框架,spring默认使用JCL日志门面,​ 而SpringBoot默认使用Slf4j,实现选用logback2.slf4j的使用1.如何在系统中使用slf4j日志记录方法的调用,不应该针对实现层,而应该对接...

2019-09-10 16:25:50 147

原创 Mybatis中的缓存

title: Mybatis中的缓存tags: 新建,模板,小书匠想要了解Mybatis中的缓存机制,我们先来看什么是缓存,简单来说,缓存就是存在于内存中的临时数据。那么,我们为什么要使用缓存呢,就是为了减少与数据库的交互次数,提高执行效率。那么问题来了,什么样的数据适合存在于缓存中呢:首先是经常使用且不经常进行增删改查的数据,再有便是数据的正确性对结果影响不大的数据。于是自然就有不...

2019-07-18 22:15:32 90

原创 Mybatis中的延迟加载与立即加载

在开始使用Mybatis中的延迟加载之前,先给出一点概念,方便理解延迟加载:延迟加载(lazy load)是(也称为懒加载)Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。(意即需要时再加载数据)立即加载:无论需不需要,直接加载出来我们知道数据之间的关系有多种:一对一,一对...

2019-07-16 22:17:55 401

原创 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 191

原创 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 538

原创 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 9937

原创 多线程学习笔记(二)静态代理及线程状态

首先代理是一种模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目标对象功能的特点也为多人所用。图形描述静态代理的实现比较简单,代理类通过实现与目标对象相同的接口,并在类中维护一个代理对象。通过构造器塞入目标对象,赋值给代理对象,进而执行代理对象实现的接口方法,并实现前拦截,...

2019-03-31 11:45:18 119

原创 多线程学习笔记(一)线程的创建

在我们之前的java语言学习中,我们主要还是以单线程编程为主。但如果是开发一些中型或者稍大型的软件项目来说,单线程显然是不够用的。无论是选课时的教务处服务器,还是双十一高峰时的淘宝,天猫,亦或是春运高潮的12306.要靠单线程实现是显然不够的。那么,在此之前,我们先了解一下一些基本的概念。进程:是指计算机中已运行的程序线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的...

2019-03-28 17:36:38 122

原创 通过反射简化Servlet操作

最近在跟着做一些小功能的时候,发现一个功能模块的实现需要使用到多个servlet(在没有使用任何框架的基础上),在MVC三层架构下以及domain包,这就显得很臃肿,因为仅仅是一个模块就需要这么多的servlet,那么当是一个具体的大型项目,我们的操作就显得不知道怎么说才好。所以我们需要对代码进行简化,怎么做?虽然标题是通过反射简化Servlet,但在此之前我们还是写一写没有使用反射机制前应该...

2019-03-25 21:15:16 340

原创 jdbc批处理

批处理什么是批处理顾名思义,批处理就是对某一对象进行批量处理,而在jdbc中,批处理具体指的是一次性执行多条SQL语句,允许多条语句一次性提交给数据库批量处理。为什么使用批处理一个词,效率,使用批处理比单个执行SQL语句效率要高在JDBC中如何使用addBatch(SQL);添加需要处理的SQL语句executeBatch();执行批处理数据库支持情况MySQ...

2019-02-16 13:31:30 798

原创 反射

类的加载时机当程序要使用某个类时,如果该类还未加载进内存系统会通过加载,连接,初始化三步来这个类的初始化1.加载:就是指class文件读入内存,并为之创建一个class对象,任何类使用时系统都会建立一个class对象;2 连接:验证是否有正确的内部结构,并和其他类协调一致,为类的静态成员分配内存,并设置默认初始化值。3 初始化:初始化成员变量。加载时机:1.创建类的实例2.访问类的...

2019-01-23 22:07:55 87

原创 JSP基础语法小结(一)

学习任何一种语言,首先要从其语法开始,JSP是基于java语言的动态网页开发技术,继承了java的所有优点。一个JSp页面实际上是由java代码段嵌入到HTML标记中构成的。我会总结一些HTML中使用JSP的基础语法,包括JSP页面构成,JSP注释,JSP指令元素,脚本元素以及动作元素先说一下jsp页面元素吧一个JSP页面由两部分组成,一部分是静态部分,如HTML、CSS 标记等,用来完成数...

2019-01-23 16:46:01 534

原创 HTTP请求简述

在开始讨论这个问题之前,我们先了解一下什么是http协议。http协议:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。其实就是相当于两个来自不同国家的人交流一样,是需要统一语言规范的...

2019-01-19 18:56:02 246

原创 centOS通过命令行安装MySQL

centOS 7 之后,由于一些不知道的原因,导致不能像在Ubuntu上一样通过apt-get语句直接安装服务端和客户端。因而我们需要一些特别的手段。首先,我们和往常一样进入centOS的root模式,如果您不了解如何进入root模式,请自行百度解决当命令行头部由$变为#的时候,表示你已进入root模式运行该命令 yum install mysql-server忽略最后一句哈,...

2019-01-17 18:18:38 1351

转载 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 220

转载 IDEA热部署的一些问题

下面转一些语言的热部署对比:在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署, 对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。 而PHP在开发时就友好多了,修改代码立即生效。 在生产环境运行时,开启了OPcache,只要设定了opcache.revalidate_freq=60,在60秒后修改的代码同样会自动生效...

2018-12-19 22:09:02 448

转载 IDEA搭建servlet运行环境

(一)使用IDEA搭建一个简易的servlet程序1、创建项目 打开IDEA,选择创建项目 填写完毕,点击next2、填写项目名 填写完毕,点击finish3、项目配置未配置的项目结构如下:配置流程:(1)在WEB-INF目录下新建两个文件夹,分别命名未classes和lib(classes目录用于存放编译后...

2018-12-19 18:15:40 1765

原创 MySQL事务

什么是事务事务是一组有着内在逻辑关联的SQL命令。支持事物的数据库系统要么确认同一个事务里的所有SQL命令,要么把他们当作整体全部放弃。也就是说,事务永远不会只完成一部分。理解1.不可分割的操作:假设该操作有ABCD四个步骤组成,若ABCD都执行成功,则认为该事务成功,否则,认为事务失败2.每条SQL语句都是一个事务。3.事务只对DML语句有效,对于DQL语句无效。特点 原...

2018-11-03 15:50:04 121

原创 MySQL的数据完整

MySQL的数据完整性什么是数据完整性:-数据完整性是为了保证用户输入的数据保存到数据库中是正确的如何添加数据完整性:在创建表时给表中添加约束数据完整性的分类:实体完整,域完整,引用完整这一次我们主要来看实体完整实体完整性:1.什么是实体完整性:表中的一行,一条数据代表一个实体2.实体完整性的作用:保证每一行数据不重复3.实体完整性的约束类型:主键约束 ...

2018-10-20 16:53:36 162

原创 ubuntu安装mysql及Java

MySQL安装mysql服务端:sudo apt-get inistall mysql-sever安装mysql客户端sudo apt-get inistall mysql-client启动MySQLservice mysql start登陆MySQL数据库sudo mysql -uroot -p显示当前所有数据库show databases;...

2018-10-11 17:20:26 249

原创 栈的一些基础操作

栈栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。简单说,就是后进先出话不多说,直接上代码“`inc...

2018-08-10 09:51:50 145

原创 链表的相关操作

链表 单链表 链表的插入: s-&gt;next=p-&gt;next; p-&gt;next=s; 链表的删除: 引进一个指针保存p q=p-&gt;next; p-&gt;next=q-&gt;next;双向链表 链表的插入: s-prev=p; s-&gt;next=p-&gt;next; p-&gt;next-&gt;prev=s; p-&gt;next...

2018-07-29 20:00:53 259

原创 spider之robots协议(新人小结)

网络爬虫与信息提取**要求掌握定向网络数据爬取和网页解析的基本能力 希望能够坚持的理念 The website is API………. 想再多磨叽几嘴,还是算了吧,暴露我学艺不精的事实一个网站想限制网络爬虫,有两个方法:一个是审查来源,一个是通过robots协议来进行告知Robots.txt 全称:Robots Exclusion Standard 网络爬虫排除...

2018-07-03 20:58:09 1493

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除