自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

haoranhaoshi的博客

了解更多:http://www.haoranhaoshi.top/。生活的最佳状态是冷冷清清的风风火火。

  • 博客(638)
  • 资源 (33)
  • 论坛 (3)
  • 收藏
  • 关注

转载 为什么@Autowired不能注入static成员属性

为什么@Autowired不能注入static成员属性静态变量是属于类本身的信息,当类加载器加载静态变量时,Spring的上下文环境还没有被加载,所以不可能为静态变量绑定值(这只是最表象原因,并不准确)。同时,Spring也不鼓励为静态变量注入值(言外之意:并不是不能注入),因为它认为这会增加了耦合度,对测试不友好。这些都是表象,那么实际上Spring是如何“操作”的呢?我们沿着AutowiredAnnotationBeanPostProcessor输出的这句info日志,倒着找原因,这句日志的输出

2021-01-17 20:35:08 13

转载 Spring事务传播

package org.springframework.transaction;import org.springframework.lang.Nullable;public interface TransactionDefinition { // 事务传播等级 int PROPAGATION_REQUIRED = 0; // 支持当前事务,没有就创建 int PROPAGATION_SUPPORTS = 1; // 支持当前事务,没有就非事务方式执行 int PRO

2021-01-15 16:35:27 12

转载 屏幕画图工具Pointofix

免费下载安装:参考:https://blog.csdn.net/gwdfff/article/details/88638844?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase或https://blog.csdn.ne

2021-01-14 20:59:44 17

原创 Spring MVC源码解析

HttpServletBean是DispatcherServlet的超类。以上接通了IOC部分。HandlerMapping:HandlerAdapter:HandlerExceptionResolver:

2021-01-14 10:46:06 14

转载 为什么StringBuilder的效率要比String高?

先看一个例子:标题从上面的例子可以看到,StringBuilder的运行时间只有简单字符串拼接的千分之一,那是什么原因造成的呢?String在java中是不可变长的,一旦初始化就不能修改长度,简单的字符串拼接其实是创建新的String对象,再把拼接后的内容赋值给新的对象,在频繁修改的情况下会频繁创建对象,而StringBuilder则不会,从头到尾只有一个实例对象,那StringBuilder是怎么实现的呢?其实StringBuilder在append时并不是用String存储,而是放到..

2021-01-03 22:42:39 13

原创 二分查找

public class SearchTest { public static void main(String[] args) { int[] array = {0,1,2,3,4,5,6,7,8,9}; System.out.println(new SearchTest().getIndex(array, 8)); } public int getIndex(int[] array, int target){ if(array.

2020-12-25 16:37:05 13

原创 排序

public class SortTest { /** * 方式 是否稳定(等值是否换相对位置) 时间复杂度 是否原地排序 * 冒泡 Y O(n^2) Y * 插入 Y O(n^2) Y * 选择 N O(n^2) Y * 快速 N O(nlogn) Y * 归并 Y O(nlogn) N * @param args */ public static void main(String[] args) { .

2020-12-25 16:35:03 19

转载 解决JavaFX在Linux下的文本框不能输入中文

在Java启动时加入-Djdk.gtk.version=2即可。参考:https://blog.csdn.net/cdnight/article/details/103647175/https://stackoverflow.com/questions/58763342/how-to-input-japanese-to-textarea-in-javafx-on-linux最终来自:https://github.com/javafxports/openjdk-jfx/blob/jfx-11/

2020-12-23 16:34:49 22

转载 env中的dev和prd

关于DEV和PRD:1SAPIDES、DEV、QAS、PRD都是什么含义? 2 SAP实施方法分几步? 答: 1 SAP系统的IDES、DEV、QAS、PRD分别是其演示练习、开发、质量保证、生产系统。其中: IDES:Internet Demonstration and Evaluation System,交互式演示与评估系统 DEV:Development System,开发系统 QAS:Quality Assurance System,质量保证系统 ...

2020-12-08 20:28:51 30

转载 SPI、ServiceLoader、DriverManager分析

https://www.jianshu.com/p/3a3edbcd8f24

2020-12-07 10:56:24 35

转载 想Debug或阅读源码时可以看到自己写的注释

想Debug或阅读源码时可以看到自己写的注释,可以给jar包关联自己编辑过的源码。方式参考:https://mp.weixin.qq.com/s/v0ihaPsuyGufdc_ImEqX8A

2020-12-03 10:53:10 43

转载 用的阿里云数据源,阿里云上明明有但下载不下来,IDEA中Maven依赖有红线

用的阿里云数据源,阿里云上明明有但下载不下来,IDEA中Maven依赖有红线。IDEAMaven视图中点击菜单栏的m,输入mvn -U idea:idea,然后点击Excute。执行结束后,剪切pom中的依赖,然后Maven视图中点击刷新,然后粘贴回依赖,再次点击刷新即可,可以多剪切刷新几次。...

2020-12-03 10:14:43 50

原创 Redis 哨兵(Sentinel)相互监控、判断Master是否下线、处理Master故障(Automatic Failover:自动故障转移)、Sentinal总结

Sentinel之间互相监控Sentinel是特殊的Redis节点,也能发布订阅;Sentinel没有主从之分;Sentinel订阅所有Redis节点的_sentinel_:hello频道,并在上线时给所有Redis节点的_sentinel_:hello频道发送消息,包括自己的host、进程ID(runid)、以及Master配置,让其他Sentinel感知自己,更新存储的Sentinel列表(如果是新的host、新的进程号,则进行添加;如果已经有host相同,但进程ID不同的Sentine.

2020-12-01 22:32:15 79

转载 Raft算法

Raft算法动画演示:http://thesecretlivesofdata.com/raft/

2020-12-01 21:19:05 16

转载 Kafka消息查找

数据保存时,如果是以集群形式,那么就有多个partition分布在不同机器上,每个partition又划分为多组segment,每个segment又包含.log,.index,.timeindex文件,用于存放每条message的offset,消息大小,消息体等信息。那么问题来了,要查找一个offset为368801的消息,该如何查找?以下给出原理图:1.根据二分法,找出对应的segment为segment2;2.打开找到的segment中的.index文件(也就是368796.index文件,该.

2020-11-29 09:41:51 149

转载 Mycat读写分离

Mycat可以在主从机的基础上设置主机负责写,从机负责读,及读写的具体策略、主从切换的策略。<dataHost name="host122" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> &lt

2020-11-28 10:08:33 37

原创 RabbitMQ补充

默认端口RabbitMQ Server:5672RabbitMQ Manager:15672RabbitMQ集群:25672创建集群一个节点(如host名称为rmq1)执行:cd /usr/local/soft/rabbitmq_server-3.8.9/sbin./rabbitmq-server -detached >nohup.out&./rabbitmqctl start_app其他节点执行:cd /usr/local/soft/rabbitmq_server-3.

2020-11-28 10:08:01 27

转载 扩缩容

扩缩容(增减数据节点):离线扩缩容系统下线扩容。(写历史数据)如:公告哪天的晚间或者哪天到哪天系统暂时下线维护。Mysql dump(https://www.cnblogs.com/linuxk/p/9371475.html)Mycat自带工具在线扩缩容在线(不停机)扩缩容。(双写:写历史数据和增量数据)1、用迁移程序和Mycat将历史数据迁移到新库。2、新的写请求发送到消息队列。(MySQL数据增量的日志解析工具 Canal :https://segmentfau.

2020-11-28 10:06:47 41

转载 ShardingSphere

ShardingSphere本文为随记。详细内容看官网权威指南:https://shardingsphere.apache.org/document/current/cn/overview/Sharding-JDBC是从当当的框架中剥离出来的。加上Sharding Proxy等构成ShardingSphere。ShardingSphere是国产分布式数据库中间件,已经提交给Apache基金会,孵化完成。表Sharing-JDBC的广播表对应Mycat的全局表。Sharing-JDBC的绑定表

2020-11-27 08:29:47 72

转载 Mysql主从复制

1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段3、修改从服务器slave: #vi /etc/my.cnf [mys...

2020-11-26 11:00:13 44

原创 MQ消息的可靠性

MQ消息的可靠性消息的可靠性即避免消息丢失。代码以RabbitMQ为例。Channel:void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body) throws IOException;String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException;消息从Prod

2020-11-25 16:13:07 52

转载 分布式事务

分布式事务的目标:保证在多个节点成功执行操作。(保证在分布式环境的事务的特性。如:订单系统的消息在库存系统、支付系统、通知系统都被消费。)一、两阶段提交(Precommit、Commit,2PC)两个阶段的提交,包括Precommit(预提交)、Commit(提交)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。1. 运行过程1.1 准备阶段协调者询问参与者事务是否执行成功,参

2020-11-24 10:41:07 49

转载 Mysql中的MVCC

Multi-Version Concurrency Control 多版本并发控制,MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程语言中实现事务内存。MVCC只工作在REPEATABLE READ和READ COMMITED隔离级别下。READ UNCOMMITED不是MVCC兼容的,因为查询不能找到适合他们事务版本的行版本;它们每次都只能读到最新的版本。SERIABLABLE也不与MVCC兼容,因为读操作会锁定他们返回的每一行数据。通过使用MVCC(Mult

2020-11-23 15:34:49 47

转载 SpringBoot配置加载的优先级

相同内容,优先级高的会覆盖优先级低的。启动参数--spring.config.location=configFilePath/configFile > projectPath/config/configFile > projectPath/configFile > classpath/config/configFile > classpath/configFile相同路径下的configFile优先级:application-profile.propertie > ap

2020-11-23 09:41:42 44

原创 分片策略

连续分片、离散分片连续分片和离散分片思考的是数据进入分片的连续性强弱,也就是分片字段值连续的记录能否高频地进入同一个分片。连续分片数据进入分片的连续性强。如:范围分片、时间分片。优点:范围条件查询消耗资源少。如ID1到100都在1个节点,无需建立多个数据连接来跨库汇总数据。扩容无需迁移数据。(扩容不影响原来分片的记录。)缺点:存在数据热点的可能性。比如支付宝账单按月分片,本月数据是热点,可以考虑不按照月分片,按照客户ID分片。按照客户ID范围分片,最近加入的客户活跃导致部分.

2020-11-22 22:31:01 60

原创 Redis缓存穿透、缓存击穿、缓存雪崩+解决方案

缓存穿透:不断请求缓存和数据库中都没有的数据。黑客可以通过缓存穿透使数据库负载过大被压垮,数据库服务器宕机。解决方案: 校验请求。如用户ID小于0,直接返回用户不存在。 设置Key的Value为Null。有效时长设置较小值,如30秒,防止数据库中插入了数据,但缓存不及时更新。 利用布隆过滤器判断请求的数据是否存在。如布隆过滤器中存储用户ID,判断用户ID是否存在。 缓存击穿:大量并发请求缓存中没有但数据库中有的数据。解决方案: 热点数据不过期。 服务...

2020-11-22 22:16:08 61

原创 LRU、LFU

LRU,即:最近最少使用淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的数据。LFU,即:最不经常使用淘汰算法(Least Frequently Used)。LFU是淘汰一段时间内,使用次数最少的数据。举例: 数据2 1 2 1 2 3 4,加入4时内存超过阈值。根据LRU会淘汰1,因为1距离想加入4的时间点(也就是淘汰时间点)最长。根据LFU会淘汰3,因为加入4前的这段时间里,3的使用次数最少。LRU算法实现:LeetCode官方题...

2020-11-20 10:56:02 83

转载 Mysql日志:二进制日志、事务日志(redo log、undo log)、快照读和当前读、共享锁和排他锁

二进制日志Mysql的binlog是二进制日志文件。包括日志索引文件(后缀为.index)和日志文件(后缀为.00000*)。日志索引文件记录日志文件。日志文件记录数据定义和写方式的数据操作语句。(数据定义、数据操作:参考:https://blog.csdn.net/haoranhaoshi/article/details/109804069)参考:https://blog.csdn.net/lzhcoder/article/details/88814364事务日志innodb事务日志包括und

2020-11-19 17:54:28 100

转载 DDL、DML、DCL、TCL

SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)。DDL(Data Definition Language):创建、修改、删除数据库、表、视图。https://baike.baidu.com/item/DDL/21997禁用DDL(通过触发器):https://baike.baidu.com/pic/DDL/21997/0/cc11728b4710b912ad8ca043c3fdfc0392452239?fr=

2020-11-19 10:56:48 48

转载 持续集成、重构、测试驱动设计、演进式设计、处理复杂系统的方式、领域驱动设计

持续集成:合理提高团队成员的集成频率,通常每个成员每天至少集成一次。每次集成通过自动化构建进行验证,及时发现集成错误。避免长时间不集成,一集成就遭遇集成地狱。注:自动化构建:编译,发布,自动化测试。集成地狱:代码差异量过大,集成困难。重构:不改变功能,改进代码,优化性能、可读性、可扩展性。测试驱动设计:及时测试,发现问题,改进设计,确保对系统的更改不破坏现有功能。演进式设计:结合持续的需求和反馈进行敏捷开发。敏捷开发的实践:持续集成、测试驱动设计、重构。—————————————

2020-11-19 10:10:45 22

转载 Redis和MySQL数据同步及Redis使用场景

转载:https://www.cnblogs.com/xiaozengzeng/p/10872290.html1.同步MySQL数据到Redis(1) 在redis数据库设置缓存时间,但这样的话,我们放在缓存中的数据对数据的一致性要求不是很高才能放入缓存当中。 例如:缓存量大但又变化频率不是很大的数据,比如商品最新的一些评论。(2) 基于binlog使用mysql_udf_redis,将数据库中的数据同步到Redis。 无论MySQL还是Redis,自身都带有数据同...

2020-11-18 19:48:33 52

转载 Redis的key过期设置、查询、清理

1.redis过期时间介绍有时候我们并不希望redis的key一直存在。例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁。redis提供了一些命令,能够让我们对key设置过期时间,并且让key过期之后被自动删除2.redis过期时间相关命令1.EXPIRE PEXPIRE    EXPIRE接口定义:EXPIRE key "seconds"    接口描述:设置一个key在当前时间"seconds"(秒)之后过期。返回1代表设置成功,返回0代表key不存在或者无法设..

2020-11-18 19:23:46 229

原创 管理员身份打开命令行窗口

Win+R,输入C:\Windows\System32,回车,然后按住Shift,快速敲cmd,可以快速搜到cmd.exe,然后在cmd.exe上右键,敲A键,回车。弹出弹框后,敲向左键回车。完成。为什么一路快捷键,一气呵成?因为无聊。爆赞!...

2020-11-17 09:53:38 20

原创 Windows上RabbitMQ下载、安装

1、RabbitMQ依赖于Erlang,需要先安装Erlang。2、Erlang和RabbitMQ版本有对应关系。https://www.rabbitmq.com/which-erlang.html下面的安装以erl 23.1和rabbitMQ 3.8.9为例。erlang下载太慢,可以在迅雷中点击新建,粘贴下载链接,如https://www.erlang.org/downloads/23.1下载后,双击exe,一直next即可。完成后,配置系统变量(Win+R快捷键,输..

2020-11-17 09:41:08 40

原创 MQ技术选型

ActiveMQ推出时间更早,功能丰富,但吞吐量不如Kafka、RocketMQ,时效性不如RabbitMQ,可靠性不如RabbitMQ、Kafka和RocketMQ,社区活跃度低,不建议使用。 RabbitMQ RocketMQ Kafka 语言 Erlang Java Scala、Java 二次开发 难 易 中 社区活跃度 高 低 高 负责开发的公司 Pivotal(负责Spring的公司) 阿里..

2020-11-16 16:14:42 31

转载 Redis基本知识点

下载地址: Windows: GitHub:https://github.com/tporadowski/redis/releases BaiduYun:https://pan.baidu.com/s/1z1_OdNVbtgyEjiktqgB83g 密码:kdfq Linux: Redis官网:http://redis.io/download启动服务端: Windows:cd到redis目录,执行redis-server.exe redis....

2020-11-16 14:08:25 40

转载 雪花算法

原文:https://blog.csdn.net/lq18050010830/article/details/89845790SnowFlake(雪花)算法是Twitter开源的分布式ID生成算法。类型:Long值 64位:从左至右: 0,1位 时间戳,41位(约69年时间) 机房ID,5位 机器ID,5位 同一机器,同一毫秒内的序列号,12位SnowFlake算法的优点:(1)高性能:ID在内存生成,不...

2020-11-16 14:07:29 35

原创 删除休眠文件,给C盘更多可用空间

C盘中的休眠文件是电脑休眠时,将内存中的数据保留到C盘(系统盘)中产生的,电脑停止休眠时,将休眠文件中的数据加载到内存中,电脑就可以恢复到休眠之前的状态。查看休眠文件,需在文件资源管理器的菜单栏查看-选项中,去掉隐藏受保护的操作系统文件(推荐)。 就可以看到C盘根目录下的hiberfil.sys文件。这个文件...

2020-11-14 09:07:41 185

原创 MQ、AMQP、RabbitMQ

Exchange(交换机):(1)Direct(直连)交换机: 使用明确的绑定键。适用于业务目的明确的场景。如:员工入职的消息对应员工入职的消息队列。(2)Top(主题)交换机:使用支持通配符的绑定键。适用于根据业务主题过滤消息的场景。如:Binding Key(绑定键)的通配符中:*表示一个word#表示一个或多个word如:senior.netty、junior.jvm(3)Fanout(广播)Exchange:无需绑定键,适合通用业务消息。如:产品系统的消息被其他所有系统(推广、销售、维

2020-11-13 15:44:49 37

原创 分布式数据库中间件Mycat

Mycat:分布式数据库中间件。对数据库用户而言,是数据库代理。Mycat将用户给到逻辑库的SQL语句路由到实际库,访问结果被Mycat处理后返回给用户(如:结果聚合)。Mycat可以屏蔽分库分表的影响,像操作整表整库一样操作分散的库和表。http://www.mycat.io/官网下载,解压后在cmd中cd到mycat的bin目录,安装:mycat install启动:mycat start停止:mycat stop重启:mycat restartMycat的默认端口是:8066。实际库是

2020-11-13 10:06:40 33

JavaFX实例合集

JavaFX控件、动画实例合集,双击根目录下Jar包可体验效果,并可看到对应的代码。

2019-01-14

人脸对比实战项目

人脸对比实战项目,IDEA搭建,可用IDEA直接打开,可参考我的博客: https://blog.csdn.net/haoranhaoshi/article/details/85954440

2019-01-10

china-boundary-gis.zip(中国边界经纬度点集)

china-gis-boundaries.txt里是全部的中国地图边界经纬度点集,相当详细,包括沿海岛屿轮廓及南海所有岛屿都清晰可见,共155 705个经纬度点。china-hainan-taiwan-main-gis-boundaries.txt里是中国大陆主体、海南、台湾的边界经纬度点集,共84 850个经纬度点。china-simple.txt里是一份简略的中国边界经纬度点集,共22 931个经纬度点,是中国全部经纬度点大于20的子范围隔15取1的结果。规则:;分割经纬度点,@开始为一个子范围,多个子范围构成了大范围。子范围中的点是按顺序排列的。

2020-06-29

bandilplszcb.zip(班迪录屏)

班迪录屏,时长不限,功能丰富,可录入声音。可参考:https://blog.csdn.net/haoranhaoshi/article/details/106943758

2020-06-24

weather-select.zip(Java获取详细的天气数据)

IDEA工程,Java获取详细的天气数据。需注册中国气象数据中心,免费试用7天。 可参考博主博文:https://blog.csdn.net/haoranhaoshi/article/details/106938218

2020-06-24

ShpAnalysis.zip(包含Java方式解析shp文件的IDEA工程和ShapeExplorer.exe)

包含Java方式解析shp文件的IDEA工程和ShapeExplorer.exe。arcmap工具(2G)过大,ShapeExplorer能打开shp文件,但有时获取信息出差,Java方式解析shp文件提供了另一种解决方式,之间运行即可,但解析也有一定局限性。ShapeExplorer和提供的工程推荐共同使用,失败时推荐arcmap。

2020-06-18

Thoughtworks 技术雷达 2019.11版

本期主题 云:多即是少? 为取得竞争优势,云服务提供商会将新服务快速推向市场。在早期采用时,请小心瑕疵以及因此引起的摩擦。 保护软件供应链 在我们朝着治理即代码的方向发展过程中,现代交付流水线方式在保护着软件制品创建的方方面面。 打开机器学习的黑匣子 和机器学习(ML)的强大能力相对应的,是它的不可预测性。所以在选择模型时,可解释性以及能用于解释模型输出的工具,变得越来越重要。 软件开发是一项团队运动 创新的蓬勃发展,得益于将不同的专业人才放到协作和跨功能的“10倍团队”当中。

2019-12-31

VertxTcpSocket.zip

Java TCP实验:Vert.x服务端 + Socket客户端 Socket客户端可实现Vert.x TCP客户端没有的同步阻塞。 注意,不能放在executeBlocking中,会使服务端给客户端发送失败

2019-07-25

《Java多线程编程核心技术》高洪岩 著 全书工程代码

《Java多线程编程核心技术》高洪岩 著 全书的完整工程代码,eclipse工程

2019-07-16

浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)实战工程

浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)实战工程,IDEA搭建

2019-07-16

dubbo-admin-2.5.10.war

最新版的dubbo-admin,2.5的最后一版,此版之后的dubbo里就没有dubbo-admin模块了。此war从GIthub的dubbo正式工程中下载并打包,亲测有效。访问http://localhost:8080/dubbo-admin-2.5.10/时,root用户名的密码为root,guest用户名的密码为guest,可以在dubbo-admin-2.5.10\WEB-INF\dubbo.properties里可修改。如果怕Tomcat的8080端口被干扰,可以在tomcat的conf\server.xml里将<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />的8080改了。

2019-07-10

zookeeper-3.4.14.zip

最新可用的zookeeper,解压即可,免安装,conf下的zoo.cfg已经将基础必须的内容配置好(包括快照文件和日志文件位置),直接运行zkServer和zkClient可测试。Windows使用cmd后缀的,Linux使用sh后缀的。如果以管理员身份运行,cmd命令行中jps可查看进程(前提是安装配置了JDK)。

2019-07-10

Java RPC和RMI代码实战

Java RPC和RMI代码实战,有关键注释,为最简案例。Maven搭建,JDK8编译。 RPC体验:依次运行RpcProvider和RpcConsumer类。 RMI体验:RMITest中依次运行testServer和testClient方法。

2019-07-02

log4j使用实战

log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender INFO是日志记录的最低等级,必须写,它和比它高的等级会进入日志,如WARN、ERROR、FATAL、OFF。 关于8个日志等级,参考:https://blog.csdn.net/haoranhaoshi/article/details/89929470下半部分。 CONSOLE是appenderName,随便写,只要一致即可,换成A也行。 log4j推荐和slf4j一起用,关于log4j和slf4j, 参考:https://blog.csdn.net/haoranhaoshi/article/details/89929470上半部分。 log4j.appender.File.File=${user.dir}/logs/hmiservice.log ${user.dir}可以得到当前程序目录,关于${}里面可以使用的内容, 参考:https://blog.csdn.net/haoranhaoshi/article/details/93532273 写绝对路径也可以,但不推荐:log4j.appender.A.File=E:/Program/log/logs/info.log DailyRollingFileAppender支持按每月、周、日、时、分创建日志文件。 当前日志放在log4j.appender.File.File=${user.dir}/logs/hmiservice.log对应的命名文件中, 过了时间将原日志文件命名为原文件名后加上log4j.appender.File.DatePattern='.'yyyy-MM-dd-HH对应格式的日期, 注意不能用:和_。 关于DailyRollingFileAppender的使用,参考:https://www.cnblogs.com/zengdingxin/p/5135008.html log4j.appender.File=MyDailyRollingFileAppender MyDailyRollingFileAppender是自定义的类,需写包括包名的全路径,如果就在src-main-java下,写类名就行。 此类可以使log4j.appender.File.maxBackupIndex=12有效,DailyRollingFileAppender本身不支持创建日志文件的上限, 即不会清理过期日志文件。 log4j.appender.File.layout.ConversionPattern=%d{yyy MMM dd HH:mm:ss,SSS} %p %m%n 更多输出控制格式,参考:https://blog.csdn.net/reserved_person/article/details/52849505上半部分 log4j.appender.File.layout=org.apache.log4j.HTMLLayout 网页形式的日志文件,参考:https://blog.csdn.net/jQuerys/article/details/49909931 日志研发的方向: 日志内容 日志格式 多长时间、多大日志生成一个文件 多长时间、多大日志生成一个文件夹 多长时间、多大日志删除一个文件 多长时间、多大日志删除一个文件夹 日志等级是否分开存储 不同服务的日志是否分开存储 存储方式:后台打印、文件、数据库、邮件等,参考:https://blog.csdn.net/reserved_person/article/details/52849505下半部分 推荐的依赖组合: <dependency> <groupId>apache-log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>slf4j</groupId> <artifactId>api</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>slf4j</groupId> <artifactId>log4j12</artifactId> <version>1.7.5</version> </dependency> 如果使用的是阿里的Maven仓库,最新的日志依赖可能没有,可以把这些依赖从官网下载后安装到本地。 本实战示例中在libs下有这些依赖。 执行以下命令,注意把Jar包路径改一下: mvn install:install-file -Dfile=C:\Users\hao\Desktop\log4j-1.2.17.jar -DgroupId=apache-log4j -DartifactId=log4j -Dversion=1.2.17 -Dpackaging=jar mvn install:install-file -Dfile=C:\Users\hao\Desktop\slf4j-api-1.6.6.jar -DgroupId=slf4j -DartifactId=api -Dversion=1.6.6 -Dpackaging=jar mvn install:install-file -Dfile=C:\Users\hao\Desktop\slf4j-log4j12-1.7.5.jar -DgroupId=slf4j -DartifactId=log4j12 -Dversion=1.7.5 -Dpackaging=jar

2019-06-25

百度语音Android实践:百度语音识别和语音合成、个人兴趣项目:亚丝娜人工智能AIMaid(仅供参考语音交流技术,请勿商用)

百度语音Android实践:百度语音识别和语音合成、个人兴趣项目:亚丝娜人工智能AIMaid(仅供参考语音交流技术,请勿商用) 参见:https://blog.csdn.net/haoranhaoshi/article/details/80979236

2019-05-19

ThoughtWorks技术雷达—2019年4月发布的最新版

ThoughtWorks的技术雷达中文版。2019年4月发布的最新版。从技术、工具、平台、语言&框架四个角度,讲述最新的互联网发展成果。结合当今互联网行业的发展态势推荐关注度。每年两次发布。建议每年阅读,跟踪前沿热点,扩大视野。你我都是ThoughtWorker。

2019-05-17

Maven简单使用

结合https://blog.csdn.net/haoranhaoshi/article/details/89841323,对Maven安装、原型、仓库、依赖管理、在IDEA中的使用有一个全面了解

2019-05-06

Vert.x的Http和TCP实战

Vert.x系列: Vert.x介绍:https://blog.csdn.net/haoranhaoshi/article/details/89279096 Vert.x实战一:Vert.x通过Http发布数据:https://blog.csdn.net/haoranhaoshi/article/details/89284847 Vert.x实战二:TCP通信:https://blog.csdn.net/haoranhaoshi/article/details/89296522 Vert.x实战三:TCP客户端之间以角色通过服务端转接通信:https://mp.csdn.net/postedit/89296606 Vert.x实战四:TCP客户端之间以角色和同一角色连接顺序通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296665 Vert.x实战五:TCP客户端之间以ID通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296754 Vert.x实战六:TCP客户端之间以功能名通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296841 Vert.x实战七:TCP设置超时断开:https://blog.csdn.net/haoranhaoshi/article/details/89296986 Vert.x的TCP服务端和客户端配置:https://blog.csdn.net/haoranhaoshi/article/details/89297022 --------------------- 作者:风铃峰顶 来源:CSDN 原文:https://blog.csdn.net/haoranhaoshi/article/details/89296606 版权声明:本文为博主原创文章,转载请附上博文链接!

2019-04-14

Mina框架实战(由浅入深,稳扎稳打)

Mina介绍:https://blog.csdn.net/haoranhaoshi/article/details/89102597 工程内容介绍(由浅入深,稳扎稳打): test1:建立Server和Client。有Client加入,Server广播给所有Client。 test2:在控制台中Server可以给所有Client发送数据,Client可以给Sever和其他Client发送数据。 test3:(1)特定角色的Client处理消息。 (2)特定角色的Client收到消息。 Client与Server建立Session后,Server存储Client的Role和Session映射(同一个角色可映射多个Session)。角色Role在MinaClientHandler中。修改Role,启动多个Client测试。Client在控制台中Role:Message的格式给对应Role的Client发送Message。 test4:(1)Client启动时如果没有Server,就先建立Server。在test3(2)基础上修改MinaClient的session = future.getSession();即可。 (2)如果建立Server的Client离开了,让另一个Client建立Server。 (3)Client给Server发送数据,如果失败,重新发送。 test5:一个Client有一个Server。Client和其他Client的Server建立Session。 test6:如果Client连接Server失败,就只建立Server,如果Server离开,第一个检测到的Client建立Server。 一个进程中包括Server和Client,进程A和B通信,Server负责接收另一个进程的消息,Client负责发送给另一个进程消息,无需Server独立启动,或者绑定在一个进程中,保证最后离线,或者绑定在一个进程中,进程离线后绑定在其他进程中。把Client中的OWN_SERVER_PORT和ANOTHER_SERVER_PORT调换后启动另一个进程,即可测试。 test7:解决相同角色,分工不同: (1)连接建立时传角色,同一个角色,多个Client,连接时间区分Client (2)连接建立时传角色和功能ID,功能ID配置到启动参数,发消息时消息头传角色和消息ID (3)细化角色。 (4)Client发送功能ID,根据功能ID、Client_ID映射文件得到Client_ID,Client_ID配置到启动参数。 (5)连接失去时,更新角色和Session的Map。 test3.type1对应test3(1) test3.type2对应test3(2) 待做: Server不能通过控制台广播到每一个Client,ioSession.write(scanner.next());之后的代码行,会等下一次控制台输入,Enter按下后执行。 test4(2)(3)、test6、test7 已经转去Vert.x了

2019-04-09

机器学习实战之决策树全面总结

1、tree.py:决策树代码 2、treePlotter.py:在matplot中生成树形图的代码 3、classifierStorage.txt:生成树的测试数据 4、lenses.txt:决策树预测隐形眼镜类型所用的样本,每行前四个为特征:['age', 'prescript', 'astigmatic', 'tearRate'],最后一个为分类。分类包括硬材质、软材质以及不适合佩戴隐形眼镜。 5、matplotlib产生的树形图: (1)测试的树形图 (2)隐形眼镜类型决策的树形图

2019-03-27

机器学习实战之kNN

1、使用 k-近邻算法改进约会网站的配对效果: (1)样本数据: datingTestSet.txt 示例(三个特征及对应的分类): 40920 8.326976 0.953952 largeDoses 3种特征:  每年获得的飞行常客里程数  玩视频游戏所耗时间百分比  每周消费的冰淇淋公升数 分类:  不喜欢的人  魅力一般的人  极具魅力的人 (2)datingTestSet2.txt已进行归一化数值、类型数字化 (3)matplotlib产生的散点图(kNN.py): 1:对应第2列(x轴),第3列数据(y轴),类型无色差 2:对应第2列(x轴),第3列数据(y轴),类型有色差 3:对应第1列(x轴),第2列数据(y轴,类型有色差 2、手写识别系统: (1)trainingDigits:手写体训练数据 (2)testDigits:手写体测试数据 3.kNN.py: 使用k-近邻算法改进约会网站的配对效果 手写识别系统

2019-03-17

Base64Util、FileUtil、GsonUtils、HttpUtil

Base64 工具类:Base64Util 文件读取工具类:FileUtil Json工具类:GsonUtils http 工具类:HttpUtil

2019-02-26

百度语音实战

系列文章: Java 语音记录(录音,存储为WAV文件):https://blog.csdn.net/haoranhaoshi/article/details/87888382 Java 语音识别(百度语音API):https://blog.csdn.net/haoranhaoshi/article/details/87888407 Java 语音合成并播放(百度语音API):https://blog.csdn.net/haoranhaoshi/article/details/87888430 Java 语音聊天机器人(百度语音API)(当前预置问答,可用图灵机器人框架扩展): https://blog.csdn.net/haoranhaoshi/article/details/87888469 (依赖前三篇博客代码) --------------------- 作者:浩然浩世 来源:CSDN 原文:https://blog.csdn.net/haoranhaoshi/article/details/87888469 版权声明:本文为博主原创文章,转载请附上博文链接!

2019-02-26

SpringBoot实战

SpringBoot入门实战,参考博客:https://blog.csdn.net/haoranhaoshi/article/details/87005611

2019-02-11

FTP的Java操作全面实战

FTP的连接、查询、上传、下载等全面操作Java代码,IDEA搭建。

2019-02-11

Socket实战

包含整个系列: Socket实战系列: Socket实战——UDP连接:https://blog.csdn.net/haoranhaoshi/article/details/86601468 Socket实战——TCP连接:https://blog.csdn.net/haoranhaoshi/article/details/86601522 Socket实战——查询数据库:https://blog.csdn.net/haoranhaoshi/article/details/86601566 Socket实战——监听数据库:https://blog.csdn.net/haoranhaoshi/article/details/86601584 Socket实战——聊天:https://blog.csdn.net/haoranhaoshi/article/details/86601771 Socket实战——文件上传:https://blog.csdn.net/haoranhaoshi/article/details/86601850

2019-01-22

摄像、拍照、人脸识别、人脸库对比

系列文章: 一、JavaFX摄像:https://blog.csdn.net/haoranhaoshi/article/details/85880893 二、JavaFX拍照:https://blog.csdn.net/haoranhaoshi/article/details/85930981 三、百度人脸识别--人脸对比:https://blog.csdn.net/haoranhaoshi/article/details/85954440 四、人脸库对比:https://blog.csdn.net/haoranhaoshi/article/details/86302313

2019-01-11

Java摄像开源框架(文档、案例、Jar包)、个人项目工程(JavaFX)、原始实例(JavaFX)

Java摄像开源框架(文档、案例、Jar包)、个人项目工程(JavaFX)、原始实例(JavaFX),了解更多可查看:https://blog.csdn.net/haoranhaoshi/article/details/85880893

2019-01-05

提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

文本框Enter、列表框双击或者Enter、按钮点击皆可搜索,模糊搜索后可上下键选择列表框中某一项,提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

2019-01-01

Json+XML+Excel+DBFile相关的Jar包及关键操作代码

Json+XML+Excel+DBFile相关的Jar包及关键操作代码

2019-01-01

阿里Java开发手册个人加注Word版(同步手册2018.5.20版)

阿里Java开发手册个人加注Word版(同步手册2018.5.20版)

2019-01-01

Servlet及Ajax数据交互

Servlet及Ajax数据交互代码示例(服务端Java的Servlet,客户端Ajax)

2018-01-02

FileZilla_3.15.0.2_win64-setup

在本地管理云服务器或云虚拟主机网站文件

2018-01-02

风铃峰顶的留言板

发表于 2020-01-02 最后回复 2020-01-02

修改已上传并已通过的资源分数,改为3分

发表于 2018-11-28 最后回复 2018-11-28

删除自己已上传并已通过的资源

发表于 2018-11-28 最后回复 2018-11-28

空空如也

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

TA关注的人 TA的粉丝

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