自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CentOS的用户管理方式?

注意:在Ubuntu中两个命令:useradd和adduser,虽然功能一致,但用法却不尽相同,在Ubuntu系统上这是两条命令,而在Centos上则是同一条命令,adduser 是链接的形式存在。centos中新建的非root用户是没有sudo的权限的,如果需要使用sudo权限必须在/etc/sudoers 中加入账户和权限,在Ubuntu中,一般使用sudo+命令,如果是第一次使用会提示输入当前用户的密码(而不是root的密码)。所以切换到root账号的时候只需要输入:su加入root账号的密码即可。

2023-06-06 19:05:55 153

原创 CentOS的权限管理方式?

除了普通权限外,我们的文件还是有特殊权限的,比如我们常见的文件/etc/shadow文件,我们发现它的权限是---------,可是我们作为普通用户还是可以进行修改自己的密码,这就意味着我们修改了shadow的内容,这是为什么呢,我们知道root这个大变态即便对文件没有任何权限,依旧可以修改查看它,所以,这会不会和root有关呢?我们看到了什么东西?在我们显示出的tty.txt的ACL权限里,我们看到#号后面的是我们本文件的原本信息,并且,设置完ACL权限以后,mask就会占领g位,所以我们要是直接设置。

2023-06-06 19:05:47 270

原创 对比rpm和yum安装方式?

yum是在rpm的基础上建立的一个工具,在配置好yum源之后很多功能比rpm命令更强大,更方便。rpm可以查询包安装后生成的配置文件等,查询未安装软件包中的内容,查询软件包相关的脚本。一般情况下软件包的查询,安装,卸载,和软件属于的软件包等命令用yum的相关命令来完成更好。rpm适用于所有环境,而yum要搭建本地yum源才可以使用!rpm 只能安装已经下载到本地机器上的rpm 包,yum是上层管理工具,rpm是底层管理工具。能在线下载并安装rpm包,能更新系统。在安装软件时如果碰到了依赖性的问题,

2023-06-06 19:05:27 207

原创 Linux常见的压缩包有哪些?

作用:用来对系统上的文件作备份与恢复,可以将系统上多个文件组构成一个tar文件备份到磁盘内或写入到一般的文件(文件名为*.tar)上,也可以将文件从一个tar文件解回到原来的系统中。[-f] compress命令执行时,如果目的文件存在,将会询问用户是否要覆盖现有的文件,如果使用了这个选项,将会强制执行压缩命令,不询问而直接覆盖。作用:文件经过compress程序压缩后,会被置换产生一个.Z的文件,这个.Z的文件的拥有权关系以及修改的时间将会保留原先未压缩文件的设置。不会匹配“.” ,但可以匹配/)

2023-06-06 19:04:58 496

原创 如何设置系统默认开机等级?

直接修改文件/etc/X11/default-display-manager的内容并保存,重启即可。默认运行级别3:systemctl set-default multi-user.target。默认运行级别5:systemctl set-default graphical.target。如何设置系统默认开机等级?

2023-06-06 19:04:02 103

原创 Linux常见的软件包有哪些?

这是 Red Hat Linux提供的最常见软件的一种包封装格式,在许多 Linux系统发行版本中使用。因此,同一软件在不同的应用平台上需要使用不同的RPM包。这些软件都是以源码方式发布,因此,用户在使用软件时需要自己编译此应用程序,然后再安装,在安装过程中需要Linux系统自身的开发工具和内核源代码的支持。这种软件包是以RPM格式封装的源代码软件包,其安装过首先需要将软件通过RPM命令解压成src格式,安装过程中需要Linux系统自身的开发工具和内核源代码的支持。租用服务器联系q:1460374。

2023-06-06 19:03:35 835

原创 自定义注解的实现方式

类似于类声明,包含PointCut和对应的Advice。在Spring AOP中被定义为接口@Aspect,作用于TYPE(类、接口、方法、enum)几乎所有涉及aop的地方都会对这些概念进行说明,这里只说说个人的理解,可先了解一下基本概念,然后看完例子之后回头结合这些概念,才能更深刻的理解。即面向切面编程,优点是耦合性低,能使业务处理和切面处理分开开发,扩展和修改方面,当引入了注解方式时,使用起来更加方便。打日志、分析代码执行时间、权限控制、事务处理、访问频率控制、异常处理等等。自定义注解的实现方式?

2023-05-18 00:28:49 70

原创 读写分离的设计模式

在Spring AOP中被定义为接口@Aspect,作用于TYPE(类、接口、方法、enum)几乎所有涉及aop的地方都会对这些概念进行说明,这里只说说个人的理解,可先了解一下基本概念,然后看完例子之后回头结合这些概念,才能更深刻的理解。//工厂模式封装(后面讲)//工厂模式封装(后面讲)即面向切面编程,优点是耦合性低,能使业务处理和切面处理分开开发,扩展和修改方面,当引入了注解方式时,使用起来更加方便。//工厂模式封装(后面讲)//工厂模式封装(后面讲)//如果是读操作就用连接从数据库。

2023-05-18 00:24:13 99

原创 什么是参数一致原则

我们知道,我们的用户是忙碌的,没有耐心,他们不愿意花更多时间来学习使用你的产品。我们遵循一致性的原则目的是为了减少用户认知负荷,用户能够轻易上手使用产品,熟悉的导航路径,熟悉的设计模式。颜色、间距、字体大小、图标一致性、规则一致性、交互操作等,我们在做界面设计时,如何科学把控这些。,会导致我们界面看起来无创新,那么该什么时候突破这种界限,下面我会简单举例说明。今天我就带大家探讨我们在处理界面的时候,如何遵循一致性原则,该如何去做。中很重要,我们平常挂嘴边的一致性原则到底是什么。一致性原则如何影响用户行为。

2023-05-17 20:13:48 200

原创 增强功能的切入方式有哪些

对哪个类中的方法进行增强,可以采用继承那个类的方式。通过继承该类,可以重写方法,如果还需要老方法的一些功能,使用super调用。有个家猫类实现类猫科接口,它有个吃的方法,现在有需求它的吃的方法已经不能满足了,增强它的吃的方法。第一步:找到需要增强的实现类的接口,或者是抽象类,然后创建一个子类进行实现或者继承;使用条件:需要对某接口或抽象类的实现类中重写的方法进行功能增强可以使用装饰者模式。第五步:重写其他的抽象方法,直接调用需要增强类的方法即可,继承需要增强方法的类,重写方法。代理对象调用接口相应方法。

2023-05-17 20:12:23 83

原创 AOP增强方法有哪些?

提供了 5 种类型的通知,它们分别是 Before Advice(前置通知)、After Returning Advice(后置通知)、Interception Around Advice(周围通知)、Throws Advice(异常通知)和 Introduction Advice(引介通知)。通过实现这些增强接口,在实现这些接口的方法当中定义横切逻辑,然后通过配置Spring的配置文件就可以完成将增强织入到目标方法当中了。其中,环绕增强是AOP联盟定义的接口,其他四种增强接口则是Spring定义的接口。

2023-05-17 20:09:39 122

原创 SpringBoot集成AOP过程

returning 限定了只有目标方法返回值与通知方法相应参数类型时才能执行后置返回通知,否则不执行,对于returning对应的通知方法参数为Object类型将匹配任何目标返回值。* 定义一个名字,该名字用于匹配通知实现方法的一个参数名,当目标方法抛出异常返回后,将把目标方法抛出的异常传给通知方法;* throwing 限定了只有目标方法抛出的异常与通知方法相应参数异常类型时才能执行后置异常通知,否则不执行,* 后置最终通知(目标方法只要执行完了就会执行后置通知方法)

2023-05-17 20:09:02 69

原创 SpringBoot“约定大于配置”的设计理念SpringBoot“约定大于配置”的设计理念

spring boot的理念是“约定大于配置”,通俗的说,就是spring boot为我们提供了一套默认的配置,不需要我们再去手动的配置xml配置文件,只有当spring boot默认提供的配置不满足我们的需求时,我们再去修改默认配置。随着spring体系的发展,我们在开发时需要配置整合的东西也越来越多,在进行开发时,繁琐的配置浪费了大量的时间与精力。spring boot为我们整合了常用的J2EE体系,极大的简化了我们的开发。作为一名Java程序员,学习spring boot的使用,也是势在必行。

2023-05-17 20:06:37 372

原创 什么是redis持久化技术

使用save命令时是使用redis的主进程进行持久化,此时会阻塞redis服务,造成服务不可用直到持久化完成,线上环境不建议使用;,使用子进程去进行持久化,主进程只有在fork子进程时会短暂阻塞,fork操作完成后就不再阻塞,主进程可以正常进行其他操作。持久化是把当前进程数据生成快照保存到磁盘上的过程,由于是某一时刻的快照,那么快照中的值要早于或者等于内存中的值。是针对save阻塞主进程所做的优化,后续所有的自动触发都是使用bgsave进行操作。触发rdb持久化的方式有2种,分别是手动触发和自动触发。

2023-05-17 20:02:32 75

原创 解析redis数据库

为保证效率,数据都是缓存在内存中,他也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。每一个文档相当于一个mysql的行,多个文档组合起来相当于一个集合,相当于。数据库提供纵多种灵活的数据结构和数据操作,为不同的数据构建不同的库。数据模型:与键值模型相似,value指向结构化数据;数据设计模式:分布式、非关系型、不提供ACID。缺点:数据无结构,通常被当做字符串或二进制数据。简单数据模型、源数据和应用数据分离、弱一致性。数据模型:数据按列存储,将一列数据存在一起。

2023-05-17 19:57:34 114

原创 关系型和非关系数据库对比

3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。Nosql数据库是在CAP(一致性、可用性、分区容忍度)中任选两项,因为基于节点的分布式系统中,很难全部满足,所以对事务的支持不是很好,虽然也可以使用事务,但是并不是Nosql的闪光点。Nosql存储的格式都是key-value类型的,并且存储在内存中,非常容易存储,而且对于数据的 一致性是 弱要求。为了维护数据的一致性付出了巨大的代价,读写性能比较差。

2023-05-17 19:55:07 143

原创 MySOL和Oracle数据库对比

虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。既有推或拉式的传统数据复制,也有dataguard的双机或多机容灾机制,主库出现问题是,可以自动切换备库到主库,但配置管理较复杂。逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的dml使用,Oracle逻辑备份时不锁定数据,且备份的数据是一致。

2023-05-17 19:52:45 168

原创 台式机和笔记本性能对比

处理性能:台式电脑的处理器、显卡和内存通常比同价位的笔记本电脑更强大。因为台式电脑的主板比笔记本更大,所以可以容纳更多的硬件组件,并且配有更好的散热系统。)大小和移动性:台式电脑通常比笔记本电脑更大、更笨重、更不易携带,它们需要更大的桌面空间和固定的电源连接,不方便携带,而笔记本电脑则相对便携,可以随身携带并使用电池。)价格和可升级性:通常来说,同样价位的台式电脑通常比同等水平的笔记本电脑更强大。另外,用户可以自行升级台式电脑的硬件,而笔记本电脑基本上只能更换硬盘和内存等部件。

2023-05-17 19:50:34 3213

原创 log日职等级

WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题- 在不久的将来(例如。ERROR:更严重的问题,软件没能执行一些功能CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行。这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪。DEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行。日志一共分成5个等级,从低到高分别是:DEBUG。

2023-04-14 13:15:35 161

原创 Slack的核心类是什么

在用select组件的时候,官方给出的例子是option 里面的value绑定一个值(不能是对象,绑定的对象的话就会出问题)。但是在开发过程中,确实遇到了需要绑定对象的时候,看官方文档根本没发现怎么解决,后来通过百度,谷歌才知道,原来在select上面加上value-key = id ,然后在option里面的 :key=\"item.id\",就可以通过value传对象了。

2023-04-14 13:11:52 87

原创 什么是jsp?

JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP与Servlet一样,是在服务器端执行的。

2023-04-14 13:09:34 67

原创 String常用API

4、public String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到新的字符串(包前不包后)5、public String substring(int beginIndex) 从传入的索引处截取,截取到末尾,得到新的字符串。9、public String[] split(String regex) 根据传入的规则切割字符串,得到字符串数组返回。1、public int length​() 返回此字符串的长度。

2023-04-12 22:08:31 43

原创 什么是串池?

串池也就是StringTable,在JDK1.6中是方法区中运行时常量池的一部分([[Java内存区域]]),到JDK1.8时代,方法区被移到了本地内存,而串池留在了堆中。发生这一变化的原因是,只有在full gc的时候才会触发永久代的垃圾回收,而full gc发生在老年代空间不足时,触发时间晚,但是StringTable用的非常频繁,这就间接导致StringTable回收效率不高,这样在minor gc时就可以触发StringTable的垃圾回收,减轻了字符串对内存的占用串池和运行时常量池之间的关系。

2023-04-11 13:59:12 83

原创 什么是数组?

数组的定义:数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。数组中的元素可以是任何数据类型,包括基本类型和引用类型。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。

2023-04-11 13:53:03 117

原创 数组常用的API方法?

删除数组中的某些项。

2023-04-11 13:52:36 58

原创 java常用集合的遍历方式?

前三种方式是外部迭代:我们编写如何控制集合的迭代。第四种是内部迭代:我们编写每次迭代需要做的事情。目前了解最常用的是增强for循环和。

2023-04-11 13:49:50 80

原创 什么是Map?

一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。在Map中键(key)可以是任意类型的对象。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。java中的map是一种依照键存储元素的容器。map中不能有重复的键,每个键都有一个对应的值。Map中的元素是两个对象,一个对象作为键,一个对象作为值。键不可以重复,但是值可以重复。Map本身是一个接口,要使用Map需要通过子类进行对象实例化。一个键(key)和它对应的值构成map集合中的一个元素。

2023-04-11 13:46:19 487

原创 list和set区别?

list是一个有序的容器,保持了每个元素的插入顺序。即输出顺序就是输入顺序,而set方法是无序容器,无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序。list可以插入多个null元素,而set只允许插入一个null元素。list方法可以允许重复的对象,而set方法不允许重复对象。List方法与set方法的区别。

2023-04-11 13:41:57 57

原创 Map的常用方法?

返回Map双边队列中所有value对应Collection集合;【返回Map集合中所有的value】,要求K是当前Map本身对应的K,或者子类;V是当前Map本身对应的V,或者其子类;使用value修改已存在的key对应的值;【返回Map中所有的key】判断当前Map双边队列中。判断指定key是否存在;删除key对应的键值对。Map双边队列个数;添加符合Map要求的。

2023-04-11 13:41:54 52

原创 java集合图框架

Collection和Map,顾名思义,容器就是用来存放数据的。Collection存放单一元素;Map存放key-value键值对。

2023-04-11 13:36:59 55

原创 什么是类,什么是对象,两者有什么关系?

因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。类与对象的关系就如模具和铸件的关系,类的实力化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。一个类的所有对象都有相同的属性(都是人类),但有不同的属性值(名字、身高不一样等),不同的类的属性不完全相同。解释的通俗一点就是,人是一种类,而具体的某一个人就是一个对象,每一个对象都符合这个类型的标准。

2023-04-11 13:35:02 98

原创 什么是方法覆盖和重载?

当一个类中,方法名相同,参数或参数类型不同称为方法的重载(overload)(1)、重载是发生同一个类中,可以不存在父子类关系,和继承无关。(2)、方法的重载,和返回值无关,和修饰词public等无关。重载:发生在同一类中,方法名相同,参数不同或参数类型 不同。的方法不能满足的时 候,对其进行改写。重写:发生在父子类之间,有继承关系。也叫做方法的重写,若从父。

2023-04-11 13:34:23 195

原创 密码加盐的设计理念?

早期的软件系统或者互联网应用,数据库中设计用户表的时候,大致是这样的结构:mysql>descUser;用户名是明文存储的,如果你登陆时用户名是123,那么数据库里存的就是123。主要的关键字段就是这么两个,一个是登陆时的用户名,对应的一个密码,而且那个时候的。为了规避第一代密码设计的缺陷,聪明的人在数据库中不在存储明文密码,转而存储加密后。了,但是由于数据库里的密码都是密文,根本无法判断用户的原始密码,所以后果也不算太。大的数据字典,然后对泄露的数据库中的密码就行对比,如果你的原始密码很不幸的被包含。

2023-03-15 20:13:33 79

原创 MD5加密的优缺点?

2、其加密过程几乎不可逆,除非维护一个庞大的Key-Value数据库来进行。4、对于一个固定的字符串。数字等等,MD5加密后的字符串是固定的,也。1、针对不同长度待加密的数据、字符串等等,其都可以返回一个固定长度。3、运算简便,且可实现方式多样,通过一定的处理方式也可以避免碰撞算。的MD5加密字符串。(通常32位的16进制字符串);就是说不管MD5加密多少次,都是同样的结果。碰撞破解,否则几乎无法解开。MD5加密的优缺点?

2023-03-15 20:11:35 201

原创 浅谈密码学?

2,非对称密钥系统,也称为公钥加密,它使用一对密钥,包括一个公钥(PublicKey)和一个私钥(PrivateKey)。散列值(也成哈希值),当不用个输入时,可以确保有不同的输出,通过输出值可以保证输入的唯一性。者,当接收者看到这手印后,即认定他就是甲,这个手印就是就是下面要讲的数据签名。用,比如我们平时用的迅雷,电驴,甚至有时候在下载大型软件时,时所有人的公钥都可以解开,然后在用接收者的公钥进行加密,确。鉴定,按手印等,如甲在写完文章后,既按了一个手印,当乙(甚。

2023-03-15 20:10:38 101

原创 常用的加密方式有哪些?

以在一定程度上增加难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,据库中,这种是最简单的保存方式,也是最不安全的方式。3、使用MD5、SHA1等单向HASH算法保护密码,使用这些算法后,无法通过。2、使用对称加密算法来保存,比如3DES、AES等算法,使用这种方式加密是。用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立。4、特殊的单向HASH算法,由于单向HASH算法在保护密码方面不再安全,于。全性才足够高,该算法也是美国国家标准与技术研究院推荐使用的算法。

2023-03-15 20:09:45 1043

原创 Subject主体的作用?

securityManager:安全管理器,主体进行认证和授权都是通过securityManager进行。authenticator:认证器,主体进行认证最终通过authenticator进行的。principal:身份信息,通常是唯一的,一个主体还有多个身份信息,但是都有一个主身。authorizer:授权器,主体进行授权最终通过authorizer进行的。realm:域,领域,相当于数据源,通过realm存取认证、授权相关数据。credential:凭证信息,可以是密码、证书、指纹。

2023-03-15 20:04:11 77

原创 Cryptography加密和Realm领域的作用?

/返回当前领域是否支持参数token的类。fromconfig.basics_confimportCIPHER_KEY#CIPHER_KEY需要自己生成。fromconfig.basics_confimportCIPHER_KEY#CIPHER_KEY需要自己生成。#可以使用Fernet.generate_key()方法进行生成如下秘钥。:paramencryption_password:加密后的密码。:parampassword:要加密的密码。#对加密后的密码进行解密。对加密字符串进行解密。

2023-03-15 20:02:49 38

原创 Authentication认证和Authorization授权的作用?

一直分不清authentication和authorization,其实很简单,举个例子来说:你要登机,你需要出示你的passport和ticket,passport是为了证明你张三确实是你张三,这就是authentication;而机票是为了证明你张三确实买了票可以上飞机,这就是authorization。在computerscience领域再举个例子:你要登陆论坛,输入用户名张三,密码1234,密码正确,证明你张三确实是张三,这就是authentication;再一check用户

2023-03-15 19:59:44 151

原创 Shiro的主要功能?

Authentication:有时也简称为“登录”,这是一个证明用户是他们所说的他们是谁的行为。Shiro是一个强大灵活的开源安全框架,可以用于应用程序的身份验证,授权,会话管理和加密。Web支持:Shiro提供的web支持api,可以很轻松的保护web应用程序的安全。登录失败有经验的安全做法是仅向终端用户输出一般的失败信息,例如“错误的用户名。RunAs:这个功能允许用户假设另一个用户的身份(在许可的前提下)。测试:支持单元测试和集成测试,确保代码和预想的一样安全。Authentication认证。

2023-03-15 19:58:59 66

空空如也

空空如也

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

TA关注的人

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