自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 资源 (4)
  • 收藏
  • 关注

原创 基于OpenFeign扩展机制实现的微服务traceId链路追踪

1.通过Filter过滤器读取和设置traceId,并把traceId设置到response中,前端也可以查看2.对OpenFeign扩展,通过RequestInterceptor接口扩展请求头,通过请求头传递traceId3.将全局的traceId放入MDC中,MDC为slf4j-api包中提供的日志上下文工具全程MappedDiagnosticContext,详细信息(Chapter8),本质是ThreadLocal。放入MDC中的key可以在日志中输出}}}..................

2022-07-27 09:19:32 1396 3

原创 理解权限的基础

其他可能的权限还有suid、sgid和sticky bit,分别表示为s(在有些系统中为S)、s(或S)和t(或T)。但是要牢记,根据使用这些权限的是文件还是目录,所有这些权限字符的意义可能会有所不同。Linux认为有三组用户会使用文件或目录,即实际拥有者(也称为文件的用户)、用户组及系统中的其他人。告诉OS经常要执行这个文件,所以通常把它保存在交换区以便快速访问(只适用于较早的Unix系统,Linux将忽略这个属性)任何用户都可以使用拥有者的权限来执行文件。任何用户都可以使用用户组的权限来执行文件。

2023-12-29 13:40:01 377

原创 修改文件和目录的拥有者

chgrp命令的几点内容也适用于chown命令。chgrp命令使用的是用户名或其数字ID。修改文件的用户组固然重要,但是修改文件的拥有者可能会更常用。修改用户组使用的是chgrp命令,而要修改拥有者则应该使用chown命令。第一个数字是用户的数字ID(第二个数字是与用户相关联的主用户组的数字ID)。同样,只有文件的当前拥有者才能修改其拥有者属性(当然,root也能修改)。匹配,所有父目录中的文件也会被修改,或许这并不是你想要的结果。,并不会修改目录中的任何点文件。它能够修改当前目录中的所有点文件,但。

2023-12-29 13:36:22 363

原创 修改文件或目录属于的用户组

关于chgrp命令,需要记住两点。换句话说,Scott、Alice或Bob可以使用chgrp命令让文件或者目录的用户组成为admins,但Carol不可以,因为她不是admins组的成员。在创建文件时,用户的UID(User ID号)成为文件的拥有者,而用户的GID(Group ID号)则成为文件的用户组。但如果你是系统中admins用户组中的一员,想让该组的其他成员也能够使用你的脚本,并能够运行它,该怎么办呢?几乎在每种Linux系统中,当你创建一个新的文件(或目录)时,默认的拥有者和用户组就是你自己。

2023-12-29 13:34:20 411

原创 tail使用

每当文件发生变化时,它就会显示文件的最后10行(或在选项中增加-n,指定不同的数字)的内容。除了接受默认的10行,也可以使用-n(或--lines=)选项来指定想要查看的文件行数。head命令可以查看一个文件前10行的内容,而按照典型的异想天开式的Unix风格,还可以使用tail命令来查看一个文件最后10行的内容。通常,查看日志(log)文件的最后几行内容,才能发现应用程序或者系统的最新运行状况。使用head命令可以一次查看多个文件的前10行内容,同样,使用tail命令也可以做类似的事。

2023-12-28 14:39:14 381

原创 head用法

如果不想查看文件的前10行内容,可以使用-n选项,后面跟上一个数字,比如5(或者用--lines=5),让head命令显示不同行数的内容。如果你指定两个或更多的文件,例如Chaucer的“Canterbury Tales”和Milton的“Paradise Lost”,结果将显示所有文件的前几行内容。如果你只需要查看一个文件的前10行内容,例如Chaucer的“Canterbury Tales”,就没有必要使用cat命令或less命令,使用head命令就可以了。2 查看多个文件的前10行内容。

2023-12-28 14:35:45 842

原创 less在分页查看文件时进行编辑

less本身并不是编辑器,它只是一个查看器,但是可以通过按v键,将使用less正在查看的文件传递给文本编辑器(如vim或nano),进行编辑处理。编辑完文件后,退出编辑器,就可以返回less命令界面,而且也可以看到刚才对文件所做的修改。每个会话(session)只需要运行一次上述命令,之后每次打开less,vim就是默认的编辑器。但是如果结束会话,下次就需要再输入export命令,这很快就会让人感到厌烦。如果你不喜欢使用按v键时出现的那个编辑器,也可以将它改为自己选择的编辑器。

2023-12-28 14:33:52 400

原创 less在分页器中搜索

如果用less命令查看大型文件或者内容非常密集的文件,可能会很难找到你特别感兴趣的文字。例如,如果你想知道Milton在“Paradise Lost”中是否使用过apple这个词来描述Adam和Eve所吃的水果,该怎么办?在less命令界面中,按/键,然后再输入你要搜索的模式(如果愿意,甚至可以使用正则表达式)。输入好搜索模式后,按Enter键,less就会跳转到匹配搜索模式的第一个实例(如果存在的话)。重复搜索也很简单,在文件中既可以向前搜索,也可以向后搜索。向前搜索使用正则表达式来表示的模式。

2023-12-28 14:32:06 332

原创 分屏查看文本文件

要查看文件,并且在每行前面显示行号,需要使用less命令的-N(或--LINE-NUMBERS)选项。less命令是分页器的一个例子,分页器是一个可以分页显示文本文件内容的程序。事实上,作为改进的more,less命令发布于1985年,这再一次证实了名言“少即是多(less is more)”!less命令运行时会占据整个屏幕,所以必须使用键盘在less命令界面中导航,只有退出less命令才能回到命令行。可以看到,这一信息提示按Enter键来去掉显示的数据,并返回继续使用less。Esc-)或右箭头键。

2023-12-28 14:22:43 357

原创 将文件作为命令的输入

通常,通过键盘提供命令的输入,因此称其为标准输入(stdin)设备。与将stdout重定向到文件一样,也可以重定向stdin,让它接受来自文件而不是键盘的输入。有些命令不能直接打开文件,在这种情况下,

2023-12-27 09:45:49 345

原创 将命令的输出追加到文件

记住,使用>重定向时,如果文件不存在,就会创建一个新文件;如果文件已经存在,则会覆盖已有的文件。但是,如果使用>>来代替>,就会把输出追加到指定文件的底部(如果文件不存在,就会创建它)。>符号可以将输出从stdout重定向到文件。如果无意间输成了>,就不是追加,而是覆盖文件!

2023-12-27 09:43:02 335

原创 将命令的输出重定向到文件

注意,在使用>之前,文件hank_mobley.txt并不存在。当使用>将输出重定向到并不存在的文件时,就会创建这个文件。特别需要注意的是,如果文件hank_mobley.txt早已存在,它将被完全覆盖。通常,输出是显示在屏幕上的,因此称其为标准输出(stdout)设备。如果不想将输出结果显示到屏幕上,则可以使用>(大于号)字符将输出存到文件中。再次重申,使用重定向要十分谨慎,因为这有可能损坏原来保存重要内容的文件。

2023-12-27 09:41:08 334

原创 将一个命令的输出用作另一个命令的输入

如果将ps的输出通过管道传递给grep命令,让它去搜索firefox,这样,Firefox确实还在运行的话,你就能够马上做出判断了。例如,文本编辑器vim(或pico、nano及emacs)会接管整个shell,因此,键盘的所有输入都直接发送给vim,而所有输出都在程序的某个位置进行显示。管道就是键盘上的“|”符号,当把它放在两个命令之间时,它可以将第一个命令的输出作为第二个命令的输入。通过管道将ls -1的结果传递给less,就可以一次在屏幕上只查看结果的一页,这样用起来要容易得多。

2023-12-27 09:39:47 438

原创 理解输入/输出流

Linux shell有三种输入/输出流:标准输入流(standard input)、标准输出流(standard output)和标准错误流(standard error)。例如,用键盘输入时,其实就是将输入发送到标准输入流,缩写为stdin,标识为0。当计算机将输出显示到终端时,使用的就是标准输出流,缩写为stdout,标识为1。如果计算机需要报告错误,并在终端上显示错误信息,使用的就是标准错误流,缩写为stderr,标识为2。在键盘上输入ls,使用的是stdin。

2023-12-27 09:36:14 342

原创 将一个命令的输出插入到另一个命令

在这个例子中,首先运行的是date "+%Y-%m-%d",然后mkdir用这个命令的输出(2005-11-24)来作为新目录的名称。这是个强大的功能,当你阅读其他人编写的shell脚本时(Web上很容易找到这些脚本),会发现到处都在用命令替换。命令替换(command substitution)是接受一个命令的输出,并将它插入到另一个命令中,好像你直接手工输入这一输出的内容一样。假设你刚参加完一个家庭聚餐,将你的数码相机连到Linux计算机,把新照片复制出来,把它们放到一个以当天日期来命名的文件夹中。

2023-12-25 16:35:03 343

原创 只有前面的命令运行失败,才运行下一个命令

仅当前一个命令运行成功时,&&才会依次运行接下来的命令。||则正好相反:只有第一个命令失败了(从技术上讲,命令返回的退出状态码不为0),第二条命令才会运行。可以把它看作“不是……”这样的短语:不是运行第一个命令,就是运行第二个命令。当一个处理失败时,经常用||给管理员发送警告。例如,为了确保特定的计算机开启和正在运行,管理员可能不时地使用ping命令对它进行查询。如果ping不通,则发送一封电子邮件给管理员,通报这一情况。它是一个功能强大的工具,真的很有用。稍微思考一下,你会发现。

2023-12-25 16:32:12 318

原创 只有前面的命令运行成功,才运行下一个命令

原本应该输入unzip /home/scott/music/JohnColtrane.zip,结果无意间输成了unzip /home/scott/JohnColtrane.zip,而你没有注意到这一点,继续操作并按Enter键,之后就起身走开了。分隔命令的一个更好的办法就是用&&,它同样也是依次顺序运行每个命令,但只有当前面一条命令运行成功之后,才能执行下一条命令[从技术上讲,每条命令返回的退出状态(exit status)码必须为0,才能运行下一条命令]。如果一条命令运行失败,整个命令链就会停下来。

2023-12-25 16:30:33 335

原创 连续运行多个命令

例如,如果一个zip压缩文件中有很多John Coltrane的MP3文件,你想先解压缩,再把它们放到一个新子目录中,最后再删除原来的压缩文件,该怎么做呢?JohnColtrane.zip的文件大小为1.4 GB,即使是速度很快的计算机,解压这么个庞然大物也要花不少时间,而且除了坐在那里干等,你或许有更重要的事情去做。接着依次顺序执行每个命令,只有一个命令结束运行(无论成功或失败),才会运行下一个命令。确保你输入的确实是你想要运行的命令,因为这些命令是依次顺序运行的,否则可能会得到意想不到的结果。

2023-12-22 13:49:18 389

原创 找出将要运行的命令的版本

只要输入命令的名称,which命令就能告诉你这个命令的哪个版本将会运行。换句话说,如果你输入kword,然后按Enter键,shell将会执行/usr/bin目录下找到的kword程序。如果想运行/usr/bin/X11目录下的版本,必须用cd命令切换目录,然后输入./kword,或者是使用那个命令的绝对路径,输入/usr/bin/X11/kword。which命令也是一种快速判断系统中是否存在特定命令的方法。如果在你的系统中有相应的命令,而且也在PATH中,which命令将告诉你在哪可以找到这个命令。

2023-12-22 13:43:32 332

原创 基于功能查找命令

不过更有趣的是,如果只想密切关注某个词或者短语,没有任何其他内容,则可以使用-e选项(或--exact)。例如,在前面的结果列表中,搜索list的结果中却出现了last命令,因为它的描述中含有listing这个词。这两个命令都能够在man page中搜索命令的名称和描述,当你只记得命令的功能而不记得具体名称时,就可以为你提供帮助。apropos命令的使用很简单:只需要在命令后面输入一个单词或短语,描述你感兴趣的命令的功能就可以了。选项时的55个,这样就方便你准确地查找命令搜索结果,找到你真正想要的命令。

2023-12-22 13:35:29 362

原创 读取命令的描述

前面介绍过man命令的-f选项,它可以将在man page中找到的命令描述打印到屏幕上。不过,要记住whatis命令则要容易得多,它也能做同样的事:显示命令的man page的描述。与不使用选项的whatis命令相比,使用通配符可能会让搜索速度稍微慢一些,但是对于今天运行速度越来越快的计算机来说,这种影响是微不足道的,所以大可不必为此担忧。要用通配符搜索man数据库,可以使用-w选项(或--wildcard)。虽然使用正则表达式可能会让whatis命令的响应速度变慢,但是你可能根本不会注意到这个问题。

2023-12-21 13:52:31 366

原创 查找命令的可执行文件、源文件和man page的路径

接着报告任何二进制可执行文件的位置/usr/bin/kword和/usr/bin/X11/kword。最后找到的是man page的位置/usr/share/man/man1/kword.1.gz。whereis命令的功能非常有用:它可以告诉你命令的可执行程序、它的源文件(如果存在的话)及其man page的路径。例如,以下命令会得到Kword的信息,它是KOffice程序套件中的一个字处理器(假设已经安装了二进制文件、源文件和man文件)。你会发现它的用处超乎你的想象。

2023-12-21 13:43:59 362

原创 info命令

如果你不想浏览Info页面,想进行搜索,也可以按以下两种方法进行:搜索关于特定命令的Info页面中所有节点的标题,或者搜索和特定命令有关的所有节点的实际文本。如果你正在阅读的节点包含子节点,输入n时,就会忽略那些子节点,直接移动到与当前阅读节点处于同一级别的下一节点。不过要小心,这样很容易跳过你正在Info中阅读的命令的主页面,到达称为Directory的节点,即通往所有其他Info节点的根节点[另一种访问Directory节点的办法是随时输入d(表示 directory)]。

2023-12-21 13:42:22 862

原创 man用法

这时可以试试-k选项(或--apropos),搜索一个描述你想找的那种命令的词或短语。当使用man命令查找一个命令的信息时,man命令偶尔可能会报告并没有该命令的页面。在放弃查找之前,还可以再试试-u选项(或--update),这个选项强制man命令重建它使用的命令数据库和man page。如果你觉得man命令的查找结果不应该是看起来的那个样子,通常用这个选项作为首选的尝试办法。如果你知道一个命令的名称,但是不知道它的功能,有种简单快捷的方法可以查找到它的功能,而无需打开命令的man page。

2023-12-20 14:46:57 369

原创 使用man来查看命令的用法

你必须知道命令的名称才能使用它们(虽然有各种方法能够解决这个特殊问题),但有时候它们显示的信息要么是过时的,要么就是遗漏了对命令的最新特性的介绍。但是最糟糕的情况是,对于你感兴趣的命令,即使找到了它的man page,而且也是最新的,仍然可能会有个大问题:它可能没有包含你想找的信息。假设你想查ls命令的更多信息,输入man ls,就会打开man page(man是manual的缩写,因此man page就是“手册页面”),显示关于ls命令各个方面的信息。NAME(命令名称)——命令的名称和简要的介绍。

2023-12-20 14:07:08 327

原创 su命令使用

从本质上来说,你已经变成了gromit,但使用的仍然是scott的环境变量。这好比是你发现了超人的衣服并穿上了它,看起来你像个超人了,但是还没有拥有超人的任何能力!现在你用的是gromit的名字,使用的也是gromit的环境变量,还位于gromit的home目录(就是gromit初次登录到这台机器后所在的位置)。你可以使用su root,或者更好一些,使用su -l root,但是还有一种更快捷的方法。当使用su –时,不但用户变更成了root,而且还使用了root的环境变量。调用su命令并不难。

2023-12-20 13:52:19 428

原创 删除空目录和带有子目录的文件夹

前者会删除工作目录中以libby开头的所有东西,后者会删除任何名称恰好是libby的文件或文件夹,然后再删除目录中的所有其他东西。也可能在无意间你就闯下了大祸,原本你想输入rm -Rf ~/libby/*,但是手指一不留神就输错了命令,告诉shell执行rm -Rf ~/libby /*。有一条很棒的小建议:永远不要输入rm -Rf .*/*删除以点号.作为名称开始的目录,因为这也匹配..,最终将删除当前工作目录的上级目录的所有东西。花点时间找找,你可能会发现rmdir命令,它就是专门用来删除目录的。

2023-12-19 10:50:46 446

原创 rm命令使用

如果你在意识到犯错的瞬间就马上停止使用机器,如果操作系统还没有重写被删除文件所占用的扇区,再加上如果你能够成功地使用某些相当复杂的文件恢复软件,还是有可能恢复误删除的文件的。另一方面,如果你想确保绝对没有人能恢复你删除的文件,即便是顶级高手也不可以恢复,请使用shred命令来代替rm命令。警告 使用通配符删除文件的时候一定要非常、非常、非常小心,否则有可能删除很多你原本不想删除的文件。这个错误的命令并非只删除所有的文本文件,“*”意味着要删除所有文件,接着再试图删除一个名为txt的文件。

2023-12-19 10:46:09 485

原创 mv命令使用

假设在你的home目录中有一个名为dogs的软链接指向/home/scott/pictures/dogs,而你想将这个链接移动到/home/scott/libby子目录中。为了直观地表达on_floor实际上是一个目录,在文件要移动到的目录名后面写个“/”符号加以标识,是个很好的主意,如mv libby_on_ floor_04.jpg on_floor/。从前一个例子可以看到,mv命令并非如此,它可以顺利地移动或重命名目录,根本不需要指定任何额外选项,与cp命令相比,这是非常好的改变。

2023-12-19 10:41:31 337

原创 cp命令使用

同样的,也没有办法提前为所有问题选择yes,所以如果你也打算使用-i选项,将1 000个文件复制为具有相同名称的其他1 000个文件,那么你一定要确保有充足的时间可以坐在电脑前,和你的shell进行交互,因为如果你真的要覆盖文件的话,将被询问1 000次。你要复制的目标文件早已存在了,但是cp命令不会发出警告,因为Linux是这样运行的:它假设你知道自己在做什么,所以它不会警告你将要覆盖什么文件,除非你要求它这么做。使用cp命令最简单的方法就是输入命令,后面再输入你想复制的文件,然后是被复制文件的新名称。

2023-12-18 14:35:15 891

原创 mkdir命令

如果在新的子目录的新子目录中再创建一个新的子目录,初看起来这似乎是件相当麻烦的事。最后创建第三个子目录(唉,真麻烦)。幸运的是,mkdir命令具有一个非常好的选项,使得整个过程更有效率:-p(或--parents)。说明 在大多数系统中,由mkdir命令创建的新目录是赋予所有者读取、改写、以及执行的权限,而组以及其他任何人则只有读取和执行的权限。使用-v选项(或--verbose)甚至会更简单,它能告诉你mkdir命令所执行的每一步操作,这样你就不需要再进行实际检查来确定mkdir命令是否正确完成了任务。

2023-12-18 14:18:26 398

原创 touch的使用

通过指定完整的4位数字的年份(1970)、月(02)、日期(16)、小时(07)、以及分钟(01),能回到30多年前的时间。9212310000中的92在69~99的范围内,所以touch命令假设你需要用“19”作为年份的前两位数字,而3405170234中的34介于00~68,所以touch命令会用“20”作为年份的基础位(前两位)。最后一次使用touch命令时,根本就没有指定年份,只设定了月份(10)、日期(19)、以及小时(17),这时touch命令会明白你想指定的是当前年份(2009)。

2023-12-15 09:38:18 317

原创 切换目录操作

无论在哪儿,只要输入简单的cd,就能立即返回到home目录。或者,如果你喜欢的话,也可以使用cd ~,因为~就像一个代表“我的home目录”的快捷方式。使用cd命令很简单:只需输入cd,后面跟着你想要切换到的目录。另一个有趣的快捷方式是cd-,可以让你返回到以前的目录,然后再运行pwd命令,显示出新位置(或者说,“原来的”位置)。命令在屏幕上提供的其他信息,无异于锦上添花,确保你能知道目录已经切换到你想要的位置。当你想切换到一个目录,在那里执行操作,然后再切换回原来的目录时,使用。3 切换到以前的目录。

2023-12-15 09:36:10 250

原创 显示当前目录的路径

当然,当在多处列出各个目录的内容时,可能会搞不清楚到底自己处于文件系统的哪个位置上。如何判断自己当前位于哪个工作目录呢?答案就是pwd命令,它代表print working directory(打印工作目录)。pwd命令显示当前目录(或工作目录)的完整的绝对路径。它并不总是你随时都要用到的命令,但是当你有些困惑时,这个命令非常方便。说明 print working directory中的print表示“打印到屏幕上”,并不是“发送到打印机”。

2023-12-15 09:32:59 117

原创 ls高级用法

d表示credentials是目录,而第一个位置上的–则表示该项是一个文件(即便文件是可执行的,ls–l仍然只用一个-来表示,所以-F和--color选项可以为你提供更多的信息)。以在前面显示的addext文件为例,它的权限是rwxr-xr--,这表明所有者scott的权限是rwx,组(在这个例子中还是scott)的权限是r-x,系统中其他用户的权限是r--。例如,“rw-r--r--”权限对于很多文件都很常见,表示所有者既可以读取也可以修改文件,但是组和其他类型的用户就只能读取文件。

2023-12-14 11:29:12 297

原创 ls命令使用

要查看某个目录的内容,不必先转到那个目录。ls命令应该是人们使用次数最多的一个命令。毕竟,在处理和使用目录中的文件之前,必须先知道目录中有哪些文件。这就是ls命令发挥作用的地方,因为它能够列出目录中的文件和子目录。说明 ls命令听起来可能很简单,不就是显示有哪些文件嘛!但是我们在后面将会看到,这个命令的选项组合多得令人吃惊,也使它表现出惊人的灵活性。必须是当前所在目录的下一级目录,其他目录该用法会报错。输入ls命令会列出当前所在目录的内容。1 列出文件和文件夹。

2023-12-14 11:21:47 143

原创 包的使用方式

需要解释的是from multiprocessing import Process是从包multiprocess里引入Process, 但Process类定义在process.py文件里,包含Process类的process.py文件是在multiprocessing目录下的,故是multiprocessing包里的一个模块。multiprocess包下有很多的模块,例如process模块,那么可以在一个示例程序里使用包multiprocess里的process模块。为例,其下还有子包dummy。

2023-12-13 15:16:24 129

原创 模块的使用

模块,是Python自带的、而外安装的或者开发者自己写的,在一个文件里使用模块很简单用import即可,import有点像C语言的include。在新程序里使用datetime模块可以有两种方式:方式一是把模块引入,而模块里的函数的使用需要用点运算的方式来来使用。而文件引用模块里某函数还有另外一种方式就是用from import来直接引入某模块里的某函数,即方式二。以Python2的内建模块datetime为例,讲解一下模块的基本使用。

2023-12-13 14:58:25 134

原创 Python中的lambda表达式

lambda表达式冒号前为传入参数列表(可多个),冒号为计算表达式,通常只能跟一个表达式,可以使用if结构,如下所示。这是一个表达式,更确切的说是函数,是一个一行函数,又称匿名函数,有些语言里称闭包。lambda表达式可以嵌套,即lambda冒号后的语句也是一个lambda表达式。lambda 传入参数 : 返回的计算表达式。取二维列表每行最大值。

2023-12-12 12:01:19 181

原创 函数预设默认值

中文含义:key 可以接收函数,这个函数只有一个参数,函数本身会在比较排序之前作用于可迭代数据集合的每个元素项,函数的返回值作为排序依据,意思有点像数据库的键的概念。对于li是个列表(集合),它的每个元素是字符串,也是集合类型,默认对li的排序是比较字符串首字母的大小进行排序,而key = lambda x : x[0] 的出现改变了排序规则,但还以第1个字母为基准进行排序,所以两次都是首字母排序,而第三次使用的sorted排序是以第2字母为机制排序所以后两次的排序结果不一样。1 sorted用法。

2023-12-12 11:59:32 103

bcmail-jdk14-138.jar

bcmail-jdk14-138.jar是Java的一个邮件加密API,它属于Bouncy Castle Cryptopackage。这个轻量级的API适用于各类环境,包括新发布的J2ME,并拥有将算法与JCE框架对接的额外基础设施。此外,bcmail-jdk14-138.jar也提供了处理S/MIME协议的APIs,可以和JCE/JCA提供者如Bouncy Castle Cryptography APIs一同使用。 在使用该API时,还需要配合JavaMail API和Java激活框架。值得注意的是,如果在程序中出现问题,可能涉及到的版本问题包就包括bcmail-jdk14-138.jar和bcprov-jdk14.138。在解决问题时可以考虑排查这些版本问题包的使用情况。

2023-12-22

backport-util-concurrent-3.1.jar

backport-util-concurrent-3.1.jar是一个Java库,它提供了一些并发工具类,用于简化多线程编程。这个库包含了许多实用的工具类,如`FutureTask`、`CountDownLatch`、`Semaphore`等,这些工具类可以帮助开发者更好地处理并发问题,提高程序的性能和可扩展性。 主要特点如下: 1. 兼容性:这个库兼容JDK 1.5及以上版本,可以与现有的Java应用程序无缝集成。 2. 丰富的功能:backport-util-concurrent-3.1.jar提供了许多实用的并发工具类,涵盖了多线程编程的各个方面,如任务调度、同步控制、线程池等。 3. 高性能:这个库的实现经过了优化,可以在高并发场景下提供良好的性能。 4. 易于使用:backport-util-concurrent-3.1.jar的工具类都经过了封装,使用起来非常简单,开发者无需深入了解底层原理,就可以轻松地解决并发问题。 5. 开源:这个库是开源的,遵循Apache License 2.0协议,开发者可以自由地使用和修改源代码

2023-12-21

avalon-framework-impl-4.2.0.jar

avalon-framework-impl-4.2.0.jar是Apache Avalon框架的一个关键部分,它提供了Avalon的默认实现。这个库对于使用Avalon Framework构建的项目来说非常关键,因为它包含了许多基础的、通用的功能,例如事件处理、依赖注入和视图模型等。 Avalon Framework是一个模块化且可扩展的框架,其核心是定义接口和契约,然后提供默认的实现。这样的设计使得开发者可以根据需要选择使用哪些模块,从而降低了系统的复杂性。同时,avalon-framework-impl-4.2.0.jar还支持与其他流行的Java框架(如Spring、Hibernate等)无缝集成,进一步提升了开发效率。 此外,Avalon Framework的另一个重要特点是它的可扩展性。Avalon的实现是插件式的,这意味着开发者可以根据自己的需求编写自定义的实现,并将其插入到框架中。这种灵活性使得Avalon Framework能够适应各种不同的开发需求。

2023-12-20

avalon-framework-4.1.3.jar

avalon-framework-4.1.3.jar是一个框架,它提供了一种简单而强大的方法来构建基于MVC(Model-View-Controller)模式的应用程序。这个框架的主要目标是简化Java Web开发过程,使得开发者能够更加专注于业务逻辑的实现,而不是花费大量时间在处理底层的技术细节上。 核心特性包括: 1. 模块化设计:avalon-framework-4.1.3.jar采用了模块化的设计,使得开发者可以根据需要选择使用哪些模块,从而降低了系统的复杂性。 2. 依赖注入:avalon-framework-4.1.3.jar支持依赖注入,这使得开发者可以更容易地管理对象之间的依赖关系,提高了代码的可维护性和可测试性。 3. 事件驱动:avalon-framework-4.1.3.jar采用了事件驱动的设计,使得开发者可以通过监听和触发事件来实现组件之间的通信,提高了代码的灵活性。 4. 视图模板引擎:avalon-framework-4.1.3.jar内置了一个简单的视图模板引擎,使得开发者可以轻松地生成动态的HTML页面。

2023-12-20

asm-util-3.2.jar

asm-util-3.2.jar是ASM项目的一个组件,它为Java字节码提供了一些实用工具类。这些工具类主要在ASM应用程序的开发和调试过程中使用,能够简化开发流程并提高开发效率。 具体来说,asm-util.jar主要包括CheckClassAdapter和TraceClassVisitor两个重要的类。CheckClassAdapter类的主要功能是检查生成的.class文件内容是否正确,这有助于确保编译后的代码质量。而TraceClassVisitor类则负责将.class文件的内容打印成文字输出,根据输出的文字信息,可以探索或追踪.class文件的内部信息,这对于理解代码的运行过程或者调试错误非常有帮助的。

2023-12-19

asm-tree-3.3.1.jar

asm-tree-3.3.1.jar是ASM项目的一个组件,它为Java字节码提供了树状API。这个库主要用于处理由无符号数和表两种数据结构组成的Class字节码。 ASM Tree API可以视为对上述两种数据结构的抽象表达方式,它以树形结构来表示字节码的内部结构,如方法、字段、指令等,并提供了对这些树节点进行操作的API。通过这种API,用户可以更直观、更方便地理解和操作Java字节码。 例如,可以使用ASM Tree API遍历一个类的整个字节码结构,查找并修改特定的指令或属性,或者在运行时动态生成新的类和方法。此外,由于ASM Tree API具有较高的抽象层次,因此它适用于各种类型的Java字节码操作,无论是标准Java类还是自定义类库。

2023-12-19

asm-commons-3.3.1.jar

asm-commons-3.3.1.jar是一个Java字节码操作库,它提供了一组用于操作Java字节码的API。这个库主要用于在运行时动态修改类的行为,例如创建新的类、方法或字段,或者修改现有的类、方法或字段。 asm-commons-3.3.1.jar的主要功能包括: 1. 读取和写入Java字节码:可以读取已经编译好的Java类文件,也可以将修改后的字节码写回到类文件中。 2. 创建和修改类:可以在运行时动态创建新的类,或者修改现有的类。这可以通过操作类的元数据(如类名、父类、接口等)和字节码指令来实现。 3. 创建和修改方法:可以在运行时动态创建新的方法,或者修改现有的方法。这可以通过操作方法的元数据(如方法名、返回类型、参数类型等)和字节码指令来实现。 4. 创建和修改字段:可以在运行时动态创建新的字段,或者修改现有的字段。这可以通过操作字段的元数据(如字段名、类型、修饰符等)和字节码指令来实现。 5. 优化字节码:可以对字节码进行优化,以提高程序的运行效率。这包括常量折叠、常量传播、空值检查消除等优化技术。

2023-12-19

asm-analysis-3.2.jar

asm-analysis-3.2.jar 它包含了一个名为`AsmAnalysis`的类,这个类是ASM库的一部分,主要用于Java字节码的分析和修改。这个工具基于访问者模式实现,可以对字节码进行各种操作和分析。 ASM库提供了一套基于树API的类分析框架和几个预定义的类分析器,这些都被包含在`org.objectweb.asm.tree.analysis`包中。在这个包里,你可以找到一些重要的类,如ClassReader、ClassVisitor和ClassWriter等,它们都是ASM库的核心API。 除此之外,ASM库也提供了一些其他的功能。例如,它可以生成二进制的class文件,也可以在类被加载入JVM之前动态修改类行为。此外,ASM库还提供了一些常用的简化字节码生成、转换的类和适配器。

2023-12-18

asm-3.3.1.jar

asm-3.3.1.jar是一个Java字节码操纵框架,它可以在二进制形式下动态生成stub类或者其他代理类,同时也可以在类被装载入JVM之前动态地进行修改。这款工具具有类似于BCEL和SERP等工具包的功能,但设计得更小更快速,因此尤其适用于实时代码插装。 ASM库的核心部分提供了一些基础的读、写、转化Java字节码和定义的API,可以生成Java字节码和实现大部分字节码的转换。为了实现这些功能,它定义了一些重要的类,如ClassReader、ClassVisitor和ClassWriter等,这些都位于Core API中。

2023-12-15

aopalliance-1.0.jar

aopalliance-1.0.jar是一个Java库,提供了一套AOP(面向切面编程)的接口和注解,这可以用于在Java应用程序中实现横切关注点的模块化。这个库是AOP联盟的一个开源项目,被广泛应用在许多Java应用程序和框架中。 AOP联盟为Java的AOP提供了一系列标准接口,包括Advice通知及其继承接口MethodInterceptor方法拦截器,还有JointPoint连接点及其继承接口MethodInvocation。例如,很多具有AOP概念的框架如Spring AOP都会依赖于此来实现其功能。

2023-12-15

antlr-2.7.7.jar

antlr是ANTLR(ANother Tool for Language Recognition)的Java版本的一个JAR包,它包含了ANTLR的核心库和运行时所需的所有类。ANTLR是一个强大的语法分析器生成器,可以用于构建编程语言、数据格式或自定义词法分析器和语法分析器。 antlr-2.7.7.jar提供了一组API,用于定义语言的语法规则、生成解析器和词法分析器等工具。使用ANTLR,用户可以轻松地编写自己的语言,并生成相应的解析器和编译器。 该JAR包中包含的主要类包括: 1. Lexer和Parser类:用于定义词法分析和语法分析的规则。 2. Token类:表示词法单元的类型和值。 3. CommonTokenStream类:提供词法单元流的实现。 4. Recognizer类:表示语法分析器,用于解析输入文本。 5. ParseTree类:表示解析树的抽象数据结构。 6. ParserRuleContext类:表示解析上下文,用于访问解析树中的节点。 除了这些核心类之外,antlr-2.7.7.jar还提供了一些辅助类和接口

2023-12-15

ant-1.6.5.jar

Ant是一个基于Java的,将软件工程的编译、测试、部署等步骤联系在一起并加以自动化的构建工具。与make工具有几分相似,但又优化了一些make工具所具有的缺陷。它可以跨平台运行,使用简单方便。 Ant主要用来编译、测试以及部署代码,对于开发人员来说,可以节省大量重复且繁琐的工作流程。此外,由于Ant是基于Java实现的,因此具有很好的跨平台性,可以在不同操作系统上进行开发和构建。 另外,Ant是Apache基金会的一个开源项目,这意味着开发者可以免费使用和修改Ant,以满足自己特定的需求。在下载和安装Ant之前需要先安装JDK。综上,Ant是一个功能强大而又灵活的构建工具,对软件开发人员来说具有很高的价值。

2023-12-14

redis-mock-0.1.6.jar

redis-mock是一个专门为Redis设计的单元测试工具,它能在不需要连接真实Redis服务器的情况下,提供redis-mock是一个专门为Redis设计的单元测试工具,它能在不需要连接真实Redis服务器的情况下,提供模拟的Redis数据服务。在进行涉及到Redis的单元测试时,通常会选择使用embeded-redis或redis-mock。相比于embeded-redis,redis-mock具有更高的稳定性和可靠性,embeded-redis在启动过程中可能会失败,且错误信息不明确。此外,redis-mock是内存中运行的,因此在进行单元测试时无需额外的依赖,只需添加对应的依赖即可

2023-12-14

Python基础面试题

Python是一种高级编程语言,由Guido van Rossum于1989年创建。它的设计哲学强调代码的可读性和简洁性,使得Python成为了许多领域的首选语言,如Web开发、数据科学、人工智能等。 Python具有丰富的库和框架,如Django、Flask用于Web开发,NumPy、Pandas用于数据分析,TensorFlow、PyTorch用于机器学习等。这些库和框架大大提高了Python在各个领域的应用效率。 Python支持多种编程范式,如面向对象编程、函数式编程和过程式编程。这使得Python非常灵活,可以根据不同的项目需求选择合适的编程范式。 Python的语法简洁明了,易于学习。它使用缩进来表示代码块,而不是像其他语言那样使用大括号。这使得Python代码看起来更加整洁,也降低了编写错误的可能性。 此外,Python还具有跨平台特性,可以在Windows、macOS和Linux等操作系统上运行。它还支持多种编程环境,如IDLE、PyCharm、Jupyter Notebook等,方便开发者进行编码和调试。

2023-11-15

RxJava响应式编程原理

RxJava是一个基于响应式编程的Java库,它使用观察者模式来处理异步任务和事件。RxJava提供了一系列操作符和扩展,使得开发人员可以以声明式方式编写异步代码,并能够轻松地处理异步任务、事件和数据流。 响应式编程是一种编程范式,它强调在数据流系统中,以流式方式处理异步事件。与传统的命令式编程相比,响应式编程更加强调数据的流动和变化,以及不同部分之间的依赖关系。 RxJava的核心是Observable和Subscriber接口。Observable表示一个可观察对象,可以发布一组数据项或事件,而Subscriber则是观察者,可以订阅这些数据项或事件。通过订阅和取消订阅操作,Subscriber可以控制数据流的开始和结束。 使用RxJava,开发人员可以编写出更加简洁、易读和可维护的代码。例如,通过使用操作符,可以将多个异步任务组合成一个连续的数据流,从而避免回调地狱的问题。此外,RxJava还提供了丰富的扩展和工具类,可以方便地与其他框架和库集成,例如Retrofit、OkHttp等。 RxJava响应式编程使得开发人员可以更加轻松地处理异步任务和事件,并能够以声明

2023-11-14

WireShark3.4.4 安装包 windows版本

Wireshark是一款功能强大的网络协议分析器,可以帮助网络管理员和开发人员深入分析网络流量,解决网络性能问题,进行故障排查等。 该软件基于开源的WinPCAP库,可以捕获网络数据包,并显示详细的网络封包信息。它支持大量的网络协议,包括TCP/IP、HTTP、FTP、SMTP、VoIP等,可以实时截取网络数据包,并以图形化方式展示数据包的层次结构、协议类型、数据内容等。 Wireshark还具有强大的过滤功能,可以根据协议、端口号、IP地址等条件进行数据包过滤,方便用户快速定位感兴趣的数据包。同时,它还支持多种输出格式,可以将数据包保存为多种文件格式,如文本文件、CSV文件、XML文件等,方便后续的数据分析。 除此之外,Wireshark还具有丰富的插件扩展机制,用户可以根据自己的需求编写插件来扩展其功能。这些插件可以支持新的协议、解析器、过滤器等,使得Wireshark更加灵活和可定制化。 总之,Wireshark是一款功能强大、灵活可定制的网络协议分析器,适用于网络管理员、开发人员、安全人员等多种角色使用,可以帮助他们更好地理解网络流量、优化网络性能、排查故障等。

2023-11-14

C语言终极面试宝典.doc

C语言终极面试宝典

2023-08-17

Scrum敏捷项目管理.pptx

本文详细讲述了敏捷项目管理的历史背景、原则、实践、以及具体落实执行的过程。适用于推行敏捷开发的中小公司参考。敏捷开发的出现有其必然性,最为突出的例子是美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。该软件系统花了大约5 000人一年的工作量,最多时,有 1000人投入开发工作,写出近100万行的源程序。尽管投入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。从1968年,软件界借鉴其它工程领域的经验提出了软件工程,其中最重要的问题之一是解决软件的生命周期问题,出现了经典的瀑布模型,把每个阶段的规格说明,严格的评审后进入下一阶段等

2023-08-16

crm项目源代码.zip

使用myeclipse编写的crm项目采用ssh框架搭建的比较古老项目,架构简单易上手可用于研究crm相关功能

2023-08-16

山寨版本qq源码+素材.zip

javase实现的简易版qq聊天软件,适用于初学javase、socket、输入输出流的同学,学完这个后可以了解网络连接在java中是如何实现的

2023-08-16

基于SSM的酒店后台管理系统

基于SSM的酒店后台管理系统

2023-08-16

java面试题,从基础到框架再到设计

java面试题,从基础到框架再到设计,比较全

2023-08-16

简历-javaEE软件工程师.doc

程序员简历模版

2023-08-16

mysql5.6性能优化总结

mysql5.6性能优化总结

2023-08-15

Gitlab提交代码时使用SonarQube扫描代码安装过程

Gitlab在提交代码时使用SonarQube进行代码检测,并实时推送到SonarQube管理端,查看检测结果,用于代码提交时的质量检测。本篇文章用于指导用户如何在Gitlab中编写脚本,并推送,SonarQube还需自行安装

2023-08-15

sonarqube9.5.0社区版分支插件

sonarqube9.5.0社区版默认不支持分支检测,需要安装插件,此插件需要安装到extensions/plugins目录下。很多文章不管版本多少就说还要复制到lib/common下,9.5.0不需要。同时赋予775权限。

2022-10-27

行政区划字典表,sql版

行政区划字典表,按照sql内容创建表结构,直接就可以导入,内容为insert语句,并带有层级关系,内容是依据国家最新行政区划内容生成,并含有国家编码

2022-08-25

行政区划表数据,包含层级关系

行政区划表数据。按照excel表头内容创建数据表,导入表中直接就能用,层级关系已经建立好,内容为依据国家官方行政区划数据生成,可作为字典直接导入使用

2022-08-25

国家行政区划列表、带编码

一般系统在选择地址时会提供省市区的下拉列表选择功能,此功能需要行政区划列表字典支持。使用本excel导入系统字典表,可以实现此功能。此excel提供了系统编码以及对照,可以结构化存储

2022-08-25

基于Nacos元数据实现灰度发布,可以按照最小粒度灰度发布

使用方式 案例1: Nacos元数据配置 {"idDeptSign":"040101","ip":"192.168.1.2","springCloud":"register"} 前端请求头设置参数publicParam {"idDeptSign":"040101","ip":"192.168.1.2","idEmp":"12342134"} idDeptSign和ip值都相等,则会有灰度服务 案例2: Nacos元数据配置 {"idDeptSign":"040101","ip":"192.168.1.2","springCloud":"register"} 前端请求头设置参数publicParam {"idDeptSign":"040101","ip":"192.168.1.3","idEmp":"12342134"} ip不相等,所以不会走灰度配置 总结: 前端请求头的json内容key值如果和Nacos元数据json的key值相等,则value值必须相等,否则不走灰度服务。如果key值不相等,则不进行匹配

2022-08-17

基于SpringBoot自动装配实现的对于OpenFeign扩展请求传递traceId,分布式服务日志查询串联标记

引用步骤: 1.基于SpringBoot自动装配,引用jar包即可,坐标如下: <dependency> <groupId>com.glzt</groupId> <artifactId>feignextend</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> 2.基于logback、log4j的MDC机制 3.日志配置中添加traceId引用,如下: <Pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}] [%X{traceId}] [%thread] %-5level %logger{80} %line - %msg%n</Pattern>

2022-07-26

服务端接口压测测试工具

测试服务端接口并发能力,也可作为单元自测使用,可设置线程数

2018-10-22

Oracle11g安装

Oracle11g安装图文攻略,word版,内容清晰丰富,有截图和描述

2018-10-22

简易图形用户界面的java代码

用java实现GUI界面 ,输入正确账号和密码即可登录下一个界面

2010-05-13

空空如也

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

TA关注的人

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