自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记工厂模式,策略模式,模板模式实际使用

最近有一个需求是在一个视频处理项目中对视频使用不同的处理工具进行视频合并,模板合成等操作。之前写了一大堆逻辑在一个类中,使用很多的if语句进行逻辑判断处理,虽然也将代码按功能拆分出了很多的方法,但在一个类中还是显得杂乱冗余,之后如果再添加新的工具或者操作时,也不太好拓展与维护,所以后面研究了下工厂,策略,模板模式,将代码进行了重构,整个代码变得简洁了很多。先使用策略模式将不同的操作下发到对应的plugin中定义一个总的plugin接口 AbstractPluginpublic interface Ab

2020-09-20 17:16:33 745

原创 spring揭秘 笔记一 spring框架的由来

spring框架的由来在spring揭秘书中,作者举了一个列子来描述spring框架出现的必然性。在中世纪的欧洲,重骑兵所向披靡,各国家都需要养一只精装的重骑兵来宣扬国家的强大,但是一直重骑兵的装备维护所需的花费却可以组装多只补兵军队,一些小国为了养重骑兵消耗国力颇多。这时候装备精简而速度更快更有优势的轻骑兵就应运而生了。在早期的J2EE平台开发实践过程中,很多的公司都盲目的推崇一种高热度技术,例如大火的EJB,EJB是使用J2EE平台各项服务的一种方式,但不是唯一的方式。对于分布 式系统来说,使用E

2020-07-26 22:12:57 205

原创 docker 安装redis 总结

下载redis镜像docker pull redis修改配置文件,需从官网下载bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问protected-mode no #默认yes,开启保护模式,限制为本地访问daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败启动redisdocker run -p 6379:6379 --name redis -v /usr/lo

2020-06-14 20:03:06 180

原创 docker 安装mysql 总结

docker 下载mysql镜像docker pull mysql查看docker镜像docker images创建mysql文件夹mkdir mysql_dockercd mysql_docker/echo $PWD启动mysql容器docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSW

2020-06-14 18:27:12 144

原创 docker安装jenkins 总结

使用docker 下载 jenkins镜像docker pull jenkins查看镜像docker images创建一个jenkins目录mkdir /home/jenkins_home;启动Jenkins容器docker run -d -p 8000:8080 -p 50000:50000 -v jenkins:/var/jenkins_home --name jenkins --privileged=true -u root jenkins查看服务docker ps...

2020-06-14 18:07:24 92

原创 Java实现分布式锁 总结

高并发问题是我们前进路上必须要解决的问题,现对使用实现分布式锁进行下总结为什么使用分布式锁在遇到多线程问题的时候,我们一般第一反应就是进行加锁,而synchronized是我们最熟悉的方式,确实可以解决并发问题,但是synchronized是基于jvm的,所以在分布式环境下,并不能满足多个系统访问只有一个线程可以访问资源的需求,所以这时候就需要使用分布式锁。分布式锁实现一般是三种方式通过数据库实现通过redis实现通过zookeeper实现三种方式说白了也就是多个系统访问同一个资源,由这一

2020-05-31 17:16:05 168

原创 Java 视频的拆分和拼接

拆分public static void cutVideo(File file, Integer max) { //计算需要分成多少个视频 int num = file.length() / max; try { RandomAccessFile raf1 = new RandomAccessFile(file, "r"); // 每次取2M byte[] bytes

2020-05-17 13:20:55 1331 1

原创 spring事件监听机制总结

spring事件相关总结为何要使用事件监听为了解除业务过于耦合,每次改动都需要重新进行测试,可以通过事件监听将一些通用业务分离出去,当监听到事件执行后,执行相关事件,若不再需要相关事件,则取消监听器。事件监听机制组成业务事件源,表示所有事件的父类,自定义的事件需要继承这个类。public abstract class ApplicationEvent extends EventObject { /** use serialVersionUID from Spring 1.2 for i

2020-05-16 18:53:50 357

原创 springboot 获取所有带指定标签的方法

之前有一个需求 写一个自定义注解,然后在项目启动以后获取到所有带自定义注解的方法,然后进行业务分析,查了很多资料,但发现很多不全面,所以自己记录一下实现ApplicationContextAware和ApplicationListener之所以ApplicationContextAware和ApplicationListener都需要实现是因为我发现有时候只实现其中一个无法得到想要的结果,接下...

2020-05-03 17:51:47 849

原创 springboot 输出日志到文件

前段时间做了个功能是拦截请求信息打印log,后来日志因为太多所以单独输出到一个文件好分辨,及记录一下过程。SpringBoot 日志相关SpringBoot使用默认日志框架是Logback,并用INFO级别输出到控制台。SpringBoot的日志级别:TRANCE < DRBUG < INFO < WARN < ERROR <FATAL < OFF#r...

2020-04-19 14:25:04 515

原创 springboot 记录访问请求的日志

最近在做请求的日志记录的功能,记录下完成的方式。Springboot框架提供了多种方式来拦截HTTP请求和响应,只要能够获取到对应的request和response,就可以通过相应的API来获取所需要的信息。使用Spring Boot Actuator在应用程序里提供的众多 Web 接口,了解应用程序运行时的内部状况,且能监控和度量Spring Boot 应用程序。Spring Boot A...

2020-04-11 16:49:12 2026

原创 docker 使用总结

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。应用场景Web 应用的自动化打包和发布。...

2020-04-05 17:32:16 222

原创 spring @Cacheable、@CacheEvict、@CachePut 使用总结

spring boot 3.1以后加入了对缓存的支持,通常使用@Cacheable、@CacheEvict、@CachePut等注解,一般作用与方法上,基本实现为当调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。@Cacheable进行了@Cacheable的方法,Spring会在其被...

2020-04-04 15:01:41 275

原创 Apache Pulsar 简单总结

什么是Apache PulsarPulsar是一个支持多租户的、高性能的服务与服务之间消息通讯的解决方案,最初由雅虎开发,现在由Apache软件基金会管理。Pulsar在Yahoo的生产环境运行了三年多,助力Yahoo的主要应用,如Yahoo Mail、Yahoo Finance、Yahoo Sports、Flickr、Gemini广告平台和Yahoo分布式键值存储系统Sherpa。Kafk...

2020-03-28 14:27:07 1294

原创 springData solr相关总结

spring data solr 是对sorlJ官方api进行封装的一套框架,最近才接触到,做下总结。pom文件<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-solr</artifactId> &...

2020-03-22 14:33:40 121

原创 spring batch 之 step总结

在spring batch中 job是step运行的框架,而step则是运行具体业务的步骤,以下是step相关的一些总结。step结构一个Step通常涵盖三个部分:读数据(Reader)、处理数据(Processor)和写数据(Writer)。但是并不是所有的Step都需要自身来完成数据的处理,比如存储过程等方式是通过外部功能来完成,因此Spring Batch提供了2种Step的处理方式:...

2020-03-21 14:12:54 4267

原创 java 常用集合工具类方法总结

公司的代码比较强调整洁和规范,一些集合的判断之前都是自己手写的,现在都使用java自身封装好的方法,现在不常用到的一些方法做下总结。比较一个list集合里是否有重复/** * 比较一个list集合里是否有重复 * */public static boolean isRepeat(List<Object> list) { Set<Object> set...

2020-03-15 15:25:02 841

原创 spring batch 相关总结

spring batch 是什么Spring Batch 作为 Spring 的子项目,是一款基于 Spring 的企业批处理框架。通过它可以构建出健壮的企业批处理应用。Spring Batch 不仅提供了统一的读写接口、丰富的任务处理方式、灵活的事务管理及并发处理,同时还支持日志、监控、任务重启与跳过等特性,大大简化了批处理应用开发,将开发人员从复杂的任务配置管理过程中解放出来,使他们可以更多...

2020-03-14 14:15:42 549

原创 spring的publish-event-listener机制总结

spring提供了publish-event-listener机制还有异步任务机制,能很好的帮助我们解耦我们的应用跟代码的管理。config类@Configuration@ComponentScan("。。。")blic class AppletApiConfigure {}事件类,必须实现ApplicationEventpublic class MyEvent extends A...

2020-03-07 18:15:02 1365

原创 java事务生效相关总结

最近在做事务相关的工作时总是有点模糊,需要搜索确定事务是否会生效,又不能每次都写个demo实验一下,所以把相关的知识点都总结一下。事务不生效的场景数据库引擎 mysql的MyISAM,是不支持事务操作的。需要改成InnoDB才能支持。访问修饰符 public修饰的方法入口才能生效,否则springAop不切入,private 方法, final 方法 和 static 方法不能添加事务,加...

2020-03-01 14:00:44 510

原创 java8新特性流式编程总结

之前大部分时间使用的jdk7进行编程, 进入新公司后开始大量使用jdk8,一些新的特性之前多是了解学习过,没有实际的的使用经验,现在对最近的使用的感悟做下总结。1 流式编程是什么? Java8以前我们常用的编程范式是命令式编程,使用起来比较复杂和繁琐,所以老是有很多新语言标榜自己的简单明了,强调Java的笨重,现在Java也加入了函数式编程,是代码看起来更加简洁与灵活,ja...

2020-02-29 16:41:27 972

空空如也

空空如也

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

TA关注的人

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