后端开发
文章平均质量分 90
Java 笔记
Cao Lilu
浮生若梦,岁月流金
展开
-
[翻译] 在 CI 或测试环境中使用 Docker-in-Docker,三思而后行
发布日期:2024-04-08 18:01:01Docker-in-Docker 的主要目的是帮助 Docker 本身的开发。许多人使用它来运行 CI(例如使用 Jenkins),起初这似乎很好,但他们遇到了许多“有趣”的问题,这些问题可以通过将 Docker 套接字(socket)“绑定安装”到 Jenkins 容器中来避免。我们看看这意味着什么。如果您想要不包含详细信息的快速解决方案,只需滚动到本文底部即可。☺。原创 2024-04-09 22:10:42 · 669 阅读 · 0 评论 -
golang 在多线程中避免 CPU 指令重排
发布日期:2024-03-26 16:29:39。原创 2024-03-27 13:50:02 · 1240 阅读 · 0 评论 -
从动态/静态语言角度理解接口
在编程语言中,接口(interface)是一种规范或契约,用于定义类或对象应该提供哪些方法、属性或事件。接口提供了一种抽象的方式来描述类或对象的行为,使得不同的类或对象可以通过实现相同的接口来实现相同的功能。接口通常包含一组方法和属性的声明,但不包含任何具体的实现。通过实现相同的接口,不同的类或对象可以实现相同的功能,从而减少了代码的重复,提高了代码的可重用性和可维护性。在一些编程语言中,如 Java 和 Go,接口是一种独立的类型,可以被类或对象实现。原创 2024-02-22 19:53:41 · 1003 阅读 · 0 评论 -
aws lambda 转换 office/txt/html 为 pdf
AWS Lambda 是一项无服务器事件驱动型计算服务,该服务使您可以运行几乎任何类型的应用程序或后端服务的代码,而无需预置或管理服务器。可以从 200 多个 AWS 服务和软件即服务 (SaaS) 应用程序中触发 Lambda,且只需按您的使用量付费。原创 2023-04-03 00:31:18 · 1385 阅读 · 0 评论 -
深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)
与手动从网站收集数据相比,爬虫可以为我们节省很多时间,对于爬虫的每次请求而言,这相当于 AWS Lambda 的每次函数的运行。AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务,如果我们要实现在 AWS Lambda 上运行 selenium 实现数据的爬取,我们需要解决如何在 AWS Lambda 函数中安装 Chrome 浏览器?同时,AWS Lambda 的主要限制是超时限制,即 15 分钟,部署包不能超过 250 MB(但使用容器最多可接受10 GB)。原创 2023-03-30 11:59:18 · 28791 阅读 · 0 评论 -
如何使用 AWS Lambda 运行 selenium
与手动从网站收集数据相比,爬虫可以为我们节省很多时间,对于爬虫的每次请求而言,这相当于 AWS Lambda 的每次函数的运行。AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务,如果我们要实现在 AWS Lambda 上运行 selenium 实现数据的爬取,我们需要解决如何在 AWS Lambda 函数中安装 Chrome 浏览器?同时,AWS Lambda 的主要限制是超时限制,即 15 分钟,部署包不能超过 250 MB(但使用容器最多可接受10 GB)。原创 2023-03-01 21:52:49 · 1716 阅读 · 0 评论 -
Docker - 发送 Container 日志到 AWS CloudWatch
关于将 docker 应用程序日志发送到 AWS CloudWatch 的教程。原创 2022-11-08 20:34:05 · 667 阅读 · 0 评论 -
AWS SQS, Boto3 and Python:带示例的完整指南
AWS Boto3 是 AWS 的 Python SDK。Boto3 可以直接在 Python 脚本中与 AWS 资源进行交互。在本教程中,我们将了解如何使用 Boto3 操作 AWS SQS。原创 2022-10-22 11:03:03 · 1385 阅读 · 0 评论 -
在 AWS lambda 上部署 docker 应用
AWS lambda 提供了两种方式来部署容器,一种是基于 AWS 提供的镜像的部署方式,另一种是自定义镜像的部署方式,下面我们将对这种中方式的不同和使用做出阐述。原创 2022-07-10 23:27:48 · 1462 阅读 · 0 评论 -
profile 和 bashrc 的区别
linux 下 profile 和 bashrc 的不同。原创 2022-07-03 21:57:16 · 2405 阅读 · 0 评论 -
解决 Elastic Search 的 Fast Vector Highlighting (FVH) 策略无法高亮 nested 数据类型
前言本文的目的不在介绍 ES 的三种高亮文本的策略,因此在阅读本文之前假设你已经熟悉 ES 的使用熟悉 ES 高亮的三种策略:Unified,Plain,FVH需要对 nested field 的大文本进行高亮显示提出问题一般情况下,ES 的文本搜索结果高亮默认的策略是 Unified,这种高亮策略对于大部分文本是够用的,但是如果文本的长度比较长,比如达到几十兆甚至上百兆的文本数据,那么 ES 在 FETCH 阶段去解析文本并准备文本高亮的时候会非常耗时,并且很可能请求超时。从官网的文档中我原创 2022-04-08 10:05:39 · 2243 阅读 · 0 评论 -
Django 与 DRF 结合的全局异常处理方案
前言Django 和 DRF(django rest framawork) 的结合在 python 后台中经常出现的组合。对于异常的全局处理,我们系统能有一个统一的解决方案,在开发环境能看到比较全的异常堆栈,而在生产环境能更好的给用户一个友好的提示,本文旨在提出一个统一个全局异常处理方案,仅供参考使用。实现的目标如果没有 DRF,我们只需要在 Django 中加一个中间件就可以解决全局异常的处理问题,但是 DRF 会帮我们处理一些异常并自动返回到客户端,因此我们要协调两者的异常处理策略。同时我们希望原创 2022-02-21 17:43:17 · 1369 阅读 · 0 评论 -
Django 和 DRF(Django Rest Framework) 下的全局异常处理
All good things must come to an end.Django 在 web 开发中往往会和 DRF 进行结合使用,DRF 有这自己的一套异常处理机制,我们可以对 DRF 中抛出的异常进行全局拦截,比如返回统一的 json 格式以便于前台进行处理。但是我们同时在 Django 中使用后台 admin 管理数据的同时,不希望修改原有的异常返回。因此我们需要同时配置 Django 和 DRF 的全局异常来适应我们的需求。异常种类我们在写代码的时候一般会遇到以下两种异常种类:【已知原创 2021-10-15 23:05:46 · 1020 阅读 · 0 评论 -
如何整理积重难返的 django db migrations 文件
你的代码应该是写给下一个开发者的情书。最简单的方式当然是删除数据库然后重新生成,但本文主要针对在原有数据的基础上进行更新。主要分以下三步,多数据库环境适用,执行之前建议有二:建议一个模块一个模块执行;执行之前保证数据库 django_migrations 中的迁移记录和模块下的 migrations 子文件夹下的迁移文件保持一致;django 数据库迁移原理(如已知晓,则跳过)我们知道在 django 中执行了 python manage.py makemigrations MODEL_N原创 2021-08-30 17:43:53 · 282 阅读 · 0 评论 -
如何在 pypi 上发布自己的 python 包
为什么人们喜欢视频学习?一篇文章中解释到,人类学习效率最高的方式,不是"读书 + 思考",而是"观察 + 模仿"。 前者需要较长时间的注意力投入,后者只需要短时间注意力,更符合人类的天性。准备工作首先在 pipy 上注册自己的帐号,这一步不再赘述本地电脑上安装有 python 的环境,这里推荐 3.x 以上的 python 环境打包工作主要依赖 python 的一个叫 setuptools 的包来完成,因此安装这个包 pip install setuptools组织代码结构下面是我所发布的原创 2021-07-28 23:07:36 · 1544 阅读 · 1 评论 -
重学 python 基础笔记
书读百遍,其义自现。每次重学基础,总有值得记录的地方。和其他语言不一样的除法在 python 中,2/2 的结果是小数,而不是我们熟知的整数。# <class 'float'>type(2/2)# <class 'int'>type(2//2)进制表示法0b10 -> 二进制0o11 -> 八进制0x15 -> 十六进制bin() -> 二进制转换函数int() -> 十进制转换函数oct() -> 八进制转换函数原创 2021-07-08 19:44:35 · 142 阅读 · 1 评论 -
python快速入门
1、特点python是不用“;”作为每句代码的结尾的。python来区别模块是使用缩进来区别的,因此在python中缩进是非常重要的。2、打印print 'hello world'print type() 打印变量的类型多行打印用三引号 '''被打印内容'''3、头文件#! /usr/bin/env python意思为使用本地安装的python版本。原创 2015-08-12 15:50:51 · 410 阅读 · 0 评论 -
常用的正则表达式
一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\转载 2014-12-28 08:42:54 · 500 阅读 · 0 评论 -
python快速入门
1、特点python是不用“;”作为每句代码的结尾的。 python来区别模块是使用缩进来区别的,因此在python中缩进是非常重要的。2、打印print 'hello world' print type() 打印变量的类型 多行打印用三引号'''被打印内容'''3、头文件#! /usr/bin/env python 意思为使用本地安装的python版本。4、python的注释单行注释用“#原创 2016-03-20 19:43:41 · 410 阅读 · 0 评论 -
MyEclise优化设置
第一步:取消自动validationvalidation有一堆,什么xml、jsp、jsf、js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下!取消方法:windows–>perferences–>myeclipse–>validation除开Manual下面的复选框全部选中之外,其他全部不选手工验证方法:在要验证的文件上,单击鼠标右键–转载 2015-01-16 16:40:48 · 405 阅读 · 0 评论 -
基于freeMarker和jacob的word导出
基于freeMarker和jacob的word导出第一步、导入相关的jar包这里主要用到两个jar包,由于后续再jacob操作的时候需要与windows组件进行交互,因此需要两个dll包,放在jdk或是jre的bin目录下。freeMarkrt的包:freemarker-2.3.13.jarjacob的包和dll文件:jacob.jar、jacob-1.15-M4-x64.原创 2015-03-29 13:59:10 · 1786 阅读 · 1 评论 -
ANT学习笔记
1、ant简介和环境搭配 ANT是使用最广泛的java项目构建工具,具有跨平台性、易于扩展、简单和快速的特点。它伸缩性好,小到个人项目,大到多团队J2EE项目,在各种规模项目中都能一展身手。并且,最重要的是,它易于掌握。 ANT可以通过其脚本语言,自动将项目文件复制到某个目录、开发项目,或者生成一些代码、执行SQL脚本语言。总之,ANT可以帮助程序员完成项目原创 2015-04-18 20:43:52 · 2026 阅读 · 0 评论 -
maven学习笔记二
1、maven的依赖特性 junit junit 3.8.1 testmaven在依赖特性只要是由test来定义的,其取值范围在笔记一中有说明。2、maven的聚合特性 对于项目所有的模块,我们可以新建一个统一的管理模块来管理所有的模块,新建的方法和建立新项目一样,但是需要注意一下几点,都在图中标明:这样我原创 2015-04-06 09:15:50 · 359 阅读 · 0 评论 -
Maven笔记_4
1、maven的生命周期Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解,第一,顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义。第二,这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的原创 2015-04-06 13:19:54 · 310 阅读 · 0 评论 -
maven学习笔记一
1、Maven简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目原创 2015-04-04 21:20:15 · 373 阅读 · 0 评论 -
maven学习笔记三
1、nexus简介 这个工具的主要作用就是搭建maven仓库的私服用的,也就是以后在maven项目中用到的jar包不首先去中央仓库中寻找,而是先去这个nexus仓库中寻找,找不到的时候,这个仓库会自动关联中央仓库下载所需要的jar包。如何下载:可以直接在搜索引擎中搜索“nexus sonatype”,进行下载。2、安装配置nexus第一步、下载好“nexus-2.11.2原创 2015-04-05 16:36:56 · 358 阅读 · 0 评论 -
JBoss主要版本下载链接一览
JBoss在2006年被 RedHat 收购。在各种 J2EE 应用服务器中,JBoss 是最受欢迎而且功能最为强大的应用服务器。不过JBoss从8.0开始改名为WildFly,这个新名称在我看来似乎并不朗朗上口。在折腾Java EE的配置时,新增一个Server,发现JBoss最多只到JBoss v5.0,官网上明明已经更新到7.1了,为何这里只显示这么古老的版本,而且我用的是Eclipse转载 2015-04-04 12:09:58 · 820 阅读 · 0 评论 -
EJB3简介、环境搭建、的三种bean
简介: EnterpriseJavaBeans是一个用于分布式业务应用的标准服务端组件模型。采用Enterprise JavaBeans架构编写的应用是可伸缩的、事务性的、多用户安全的。采用ejb编写的这些应用,可以部署在任何支持Enterprise JavaBeans规范的服务器平台,如jboss、weblogic等。 EJB实际上是用于编写业务层代码。如果大家对于MVC (原创 2015-04-04 12:22:40 · 1138 阅读 · 0 评论 -
File类的使用
为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径。1 File的常用属性和方法 1.1 常用属性:原创 2015-01-25 17:49:51 · 491 阅读 · 0 评论 -
Web开发中的四个域对象(范围由小到大)
简介:page(jsp有效) request(一次请求) session(一次会话)application(当前web应用)page域指的是pageContext.request域指的是requestHttpServletRequestsession 域指的是 sessionHTTPSessionapplication 域指的是 applicationServletConte转载 2014-12-19 08:56:42 · 1257 阅读 · 0 评论 -
一个常用的DateUtil工具
这里涉及到Calendar的相关知识。public class DateUtil { private static SimpleDateFormat format = new SimpleDateFormat(); /** * 日期格式:yyyyMMddHHmmssSSS */ public static String yyyyMMddHHmm转载 2014-12-20 19:46:08 · 439 阅读 · 0 评论 -
java写的一些方法
这个方法可以取得用户的mac地址package com.yh.tb.util;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.UUID;public class GetMACUtil { public static String getMACAddress() {原创 2014-12-15 21:25:01 · 552 阅读 · 0 评论 -
使用HttpSessionListener接口监听Session的创建和失效
HttpSessionListener : Session创建事件发生在每次一个新的session创建的时候,类似地Session失效事件发生在每次一个Session失效的时候。这个接口也只包含两个方法,分别对应于Session的创建和失效:# public void sessionCreated(HttpSessionEvent se);# public void s转载 2015-06-23 18:46:23 · 496 阅读 · 0 评论 -
多线程基础
1、概述Jvm虚拟机启动的时候就启动了多个线程,至少有两个线程可以分析出来,他们分别是执行main函数的线程,该线程的任务代码都定义在mian函数中;第二个就是负责垃圾回收的线程。创建线程的目的是为了开启一条执行路径,去运行指定的代码和其他代码实现同时运行。而运行的指定代码就是这个执行路径的任务。另外,Jvm创建的主线程的任务都定义在了主函数中。2、多线程的两种创建方式 多线原创 2015-08-27 21:04:06 · 316 阅读 · 0 评论 -
java设计模式
1、责任链应用场景 假设用户向服务器发动数据,由于数据中可能包含敏感词汇或是其他需要实现过滤的信息,因此在数据进入服务器数据库之前需要对信息进行过滤。但是过滤器可能不只是需要一个,而且在以后业务需要增加以后,程序能够很容易的扩展,因此就有了这种责任链设计模式。第一次设计 现在我们假设用户要向服务器发送一段字符串,但是在字符串中包括敏感词汇和脚本语言,因此在数据录入数据库原创 2015-08-12 22:01:06 · 748 阅读 · 0 评论 -
JUnit4测试框架
JUnit4测试框架 在软件测试领域有很多的测试框架,比如JUnit、TestNG等,但是最著名的则是JUnit。在这个测试框架中有一句经典的话:keeps the bar green to keeps the code clean!以下介绍整个框架的入门。新建和命名规则 我们可以“new--JUnitTest Case”来新建一个JUnit测试类,如下:红原创 2015-08-14 21:25:28 · 433 阅读 · 0 评论 -
浅谈反射机制
java反射机制就是在运行状态中,对于任意一个类(class文件),都知道这个类的所有属性和方法。 反射的简单运行过程:1、首先应该有一个编译成二进制字节码的文件;2、我们通过这个类的全类名找到这个类文件并加载进内存,创建该字节码文件对象,并创建该字节码文件对应的对象(Class.forName());3、这样我们就可以通过反射提供的方法来实例化这个类,并却得其方法和属性并执行。原创 2015-09-06 16:22:53 · 332 阅读 · 0 评论 -
字节流和字符流操作
一、字节流的使用MP3的三种读写方法:主要用到四个类:FileInputStream,FileOutputStream,BufferedInputStream,BufferedOutputStream直接上例子:【实例】 //第一种读取方法,使用自定义二进制流数组方法 public static void copy1() throws IOException { F原创 2015-01-25 21:25:25 · 399 阅读 · 0 评论 -
环境变量中path,classpath和JAVA_HOME的作用
设置环境变量在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题)JDK安装完成之后我们来设置环境变量:右击“我的电脑”,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:(1)配置path变量:为什么要配置path变量?因为电脑系统将根据该变量的值找到java编程中需要的一些程序,比如ja转载 2015-10-15 14:06:45 · 2023 阅读 · 1 评论 -
webservice简单学习笔记
1. Web Service中的几个重要术语1.1 WSDL:web service definition language直译 : WebService定义语言 1. 对应一种类型的文件.wsdl2. 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式3. 一个web service对应一个唯一的wsdl文档原创 2015-11-25 23:11:44 · 835 阅读 · 0 评论