bird_tp的博客

私信 关注
bird_tp
码龄4年

不管是菜鸟还是笨鸟,反正先飞总是没错

  • 316,533
    被访问量
  • 226
    原创文章
  • 15,444
    作者排名
  • 54
    粉丝数量
  • 于 2017-01-07 加入CSDN
获得成就
  • 获得88次点赞
  • 内容获得55次评论
  • 获得347次收藏
荣誉勋章
兴趣领域
  • #后端
    #Java
TA的专栏
  • java集合源码
    6篇
  • 设计模式
    17篇
  • mybatis plus
    5篇
  • java并发
  • 数据结构
    1篇
  • 搜索引擎
    4篇
  • spring cloud alibaba
    5篇
  • spring cloud
    14篇
  • shiro
    4篇
  • Spring Security
    2篇
  • springboot
    10篇
  • 数据库
    10篇
  • oracle
    6篇
  • sql server
    6篇
  • linux
    5篇
  • vue学习
    2篇
  • jquery和js
    6篇
  • UML
    5篇
  • 计算机网络
    9篇
  • 计算机知识
    1篇
  • effective java学习
    6篇
  • netty
    3篇
  • java基础学习
    26篇
  • 多线程
    6篇
  • 工作总结
    34篇
  • 工具使用
    1篇
  • git,svn,ant
    4篇
  • jmeter
    1篇
  • kettle
    7篇
  • eclips与idea使用
    7篇
  • 帆软报表
    3篇
  • docker
    3篇
  • maven
    4篇
  • spring 学习
    10篇
  • nginx学习
    4篇
  • activiti工作流
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

mysql如何不依赖数据库客户端将一个表中的数据迁移到令一个数据库中

本次操作只需执行两句sql,分比为mysqldump -u root -p mytest(自己替换数据库名)tb_sent(自己替换表名)> D:/yourtabledata.sql(你需要存储的sql地址)mysql -u root -p safe(自己替换需要导入数据的数据库名)< D:/yourtabledata.sql(前面导出的sql文件存储地址)操作细节,请看下面的步骤一、导出数据打开命令行输入以下sql:表格中需要替换的数据库名和表名...
原创
19阅读
1评论
0点赞
发布博客于 29 天前

spring boot项目中mybatis plus多数据库支持

一、博客背景当你的项目需要兼容多种数据库,当你在mapper接口中定义一个方法时,你的xml中需要有一个id为你的方法名的标签实现语句,但是在一个xml中id只能唯一,但是你又需要兼容多个数据库,这时你要怎么处理。有两种方法可以处理1.在mapper中定义多个方法,分别对应不同的数据库,xml针对不同的方法写sql,这样就不会存在id冲突的情况了2.在mapper文件中定义一个方法,xml中使用多个id相同的sql语句,且用databaseId标识,这样同样可以解决上面的问题,下面就来讲解具
原创
55阅读
0评论
0点赞
发布博客于 1 月前

ConcurrentHashMap源码查看

一、博客背景因hashmap不是线程安全的,在多线程下插入会有死锁的问题,所以ConcurrentHashMap就出现来替代了,ConcurrentHashMap在java7和java8中数据结构有了变化,我们本篇博客会根据我们目录中的提到的问题一起交叉查看jvav7和java8的源码,查看之前可以自己先想想问题的答案。篇幅较多,请耐心看完,java7的版本号为1.7.0_04,java8的版本号为1.8.0_162二、常见问题CurrentHashMap的实现原理 CurrentHashMa
原创
58阅读
0评论
0点赞
发布博客于 2 月前

break 通过自定义标签跳到指定位置

实现比较简单,但是不常用,所以本篇博客作为一个笔记使用,因代码简单,直接粘贴代码和运行结果public class Tets { public static void main(String[] args) { b:for(;;){ System.out.println("bbbbbbbbbbbbbbbbbbbbbb"); a: for(;;){ int i =0; for
原创
44阅读
3评论
0点赞
发布博客于 2 月前

数据结构之树

一、什么是树树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树结构示意如下图二、树的相关属性结点:使用树结构存储的每一个数据元素都被称为“结点”。孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点;结点的
原创
41阅读
0评论
0点赞
发布博客于 2 月前

TreeMap源码查看

一、构造函数// 自定义的比较器,用于给TreeMap的元素排序private final Comparator<? super K> comparator;// 红黑树的根节点private transient Entry<K,V> root;// 节点数目private transient int size = 0;// TreeMap结构的修改次数,用于fail-fast机制private transient int modCount = 0;// 无参
原创
28阅读
1评论
0点赞
发布博客于 2 月前

set集合类源码查看

一、博客背景set接口下有两个主要常用地的实现子类hashset、linkedhashset和treeset,今天我们就一起来查看学习下二、hashset1.构造函数private transient HashMap<E,Object> map;private static final Object PRESENT = new Object();public HashSet() { map = new HashMap<>();}public Hash
原创
26阅读
1评论
0点赞
发布博客于 2 月前

LinkedHashMap源码查看

一、背景 LinkedHashMap是基层HashMap的一个子类,所以很多方法都是用的HashMap的方法,尚未了结HashMap的同学可以去看下我的上一篇博客,在本篇博客中涉及到HashMap的源码方法就不不粘贴了,同样本篇会讲解下java7.和java8的代码java7的版本号为1.7.0_04,java8的版本号为1.8.0_162二、问题LinkedHashMap的数据结构三、构造函数1.java7//循环链表的头结点private transient Ent..
原创
15阅读
0评论
0点赞
发布博客于 2 月前

HashMap源码查看

一、博客背景hashmap在java7和java8中数据结构有了变化,我们本篇博客会根据我们目录中的提到的问题一起交叉查看jvav7和java8的源码,篇幅较多,请耐心看完,java7的版本号为1.7.0_04,java8的版本号为1.8.0_162二、常见问题HashMap的底层原理是什么? 为什么JDK 7使用数组+链表?JDK8中为什么要使用红黑树? hashmap底层是如何put的 hashmap底层是如何实现get的 hashmap如何扩容
原创
63阅读
0评论
1点赞
发布博客于 2 月前

List集合类源码查看

一、博客背景list接口下有两个主要常用地的实现子类ArrayList和LinkedList,今天我们就一起来查看学习下,使用的jdk版本为1.7.0_04二、ArrayList在查看源码之前我们思考一下下面的问题,然后带着问题去学习 ArrayList底层实现原理 ArrayList的默认容量大小? ArrayList的插入或删除一定慢吗? ArrayList底层就是数组,访问速度本身就比较快,为什么还要实现RandomAccess接口? Arra
原创
51阅读
0评论
1点赞
发布博客于 2 月前

java集合框架大览

一、为什么需要java集合类框架 在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在j..
原创
38阅读
0评论
0点赞
发布博客于 2 月前

java多线程基本知识

一、什么是进程,什么是线程,进程和线程的区别进程是资源调度和分配的基本单位。是在系统中正在运行的一个应用程序线程是CPU调度和分配的基本单位。将一个进程划分为若干个独立的执行流,每一个执行流均称为一个线程。二、java中多线程的实现方式继承 Thread 类public class NewThreadName extends Thread{ @Override public void run(){ //线程的执行代码在这里 }}实现
原创
23阅读
0评论
0点赞
发布博客于 2 月前

Executor框架

本文的博客仅仅作为笔记记录使用,转载别人优秀的博客https://blog.csdn.net/tongdanping/article/details/79604637
原创
23阅读
0评论
0点赞
发布博客于 2 月前

http等网络协议和webservice soket

一、每一层分别有什么协议二、TCP/IP协议TCP/IP 是 Internet 所用的协议,它是一个协议栈,由一系列小而专的协议组成,可分为三个层次:网络层,传输层和应用层网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议;应用层:FTP、HTTP、TELNET、SMTP、DNS等协议三、HTTP HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TC..
原创
91阅读
0评论
0点赞
发布博客于 2 月前

springboot控制是否注册redis

一、博客背景最近项目中有使用到redis做缓存队列,但是还提供了其他的缓存方式,所以redis需要做成可配置的,所以在这里记录下项目中的配置情况。二、代码将redis的所有相关文件放在一个application-redis.properties配置文件中,当需要使用该配置的时候在application.properties中的配置项中加上spring.profiles.active=redis################### Redis配置#####################
原创
36阅读
0评论
0点赞
发布博客于 2 月前

spring boot项目配置阿里数据源兼容多种数据库

一、博客背景最近在做的一个项目需要用到阿里数据源和四种数据库,分别为mysql,oracle,db2,sql server数据库,项目中的阿里数据源需要兼容4套数据库,且只写一个总的配置文件,而不是mysql对应一套,oracle对应一套二、代码展示application.properties#datasource数据源的配置信息spring.profiles.active=datasource##数据库配置#数据库类型(1.oracle,2.sqlServer,3.mysql,4.
原创
78阅读
0评论
0点赞
发布博客于 2 月前

springboot项目自动加载配置文件中的配置到map中

一、博客前提本篇博客做为自己使用@ConfigurationProperties注解的功能笔记本篇博客展示的功能就是spring boot项目启动后,自动将配置文件中的配置项加载到一个map中去二、代码展示java配置文件@Configuration@ConfigurationProperties(prefix="spring")public class MyDataSourceConfig { private Map<String, String> datas
原创
128阅读
0评论
0点赞
发布博客于 2 月前

数据库查询当前时间操作,分页查询

一、本文背景项目中有使用mysql,db2,sql server,oracle四种数据库,有进行时间的对比,和获取当前的时间,在本文总结一下这四种数据库不同的sql写法二、获取当前时间1.mysql获取当前时间2.db2获取当前时间3.sql server获取当前时间select GETDATE();4.oracle获取当前时间三、java传入字符串与数据库时间对比表中的FIX_BEGINTIME 为TIMESTAMP类型1.mysql字符串转时间对比2.db2字
原创
70阅读
0评论
0点赞
发布博客于 2 月前

设计模式之访问者模式

1、问题引入  今天我们看的是访问者模式【Visitor Pattern】,我们理解访问者模式这个名称可能会有利于我们理解其核心代码块。我们看这么个例子:我去朋友家做客,那么朋友属于主人,我则属于访问者。这时刚好朋友在炒菜,却没得酱油了。如果朋友下去买酱油将会很麻烦而且会影响炒菜。这时就到我这个访问者出马了。一溜烟的出去打着酱油就回来了。简单理解的来说就是,访问者在主人原来的基础上帮助主人去完成主人不方便或者完不成的东西。访问者模式介绍一、来由  在软件系统开发中,我们经常会遇见一些层次结.
原创
16阅读
0评论
1点赞
发布博客于 3 月前

设计模式之模板模式

一、定义模板模式又名模板方法模式,父类定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。例如,一个互联网产品开发过程中,有需求调研,原型输出,代码开发,测试,结项怎么几部分,所以我们可以将这几大步骤放到父类中定义,但是具体如何调研,如何开发,测试则是可以放到子类实现。二、优缺点优点1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。缺点每一个不同的实现都需要一个子类来.
原创
52阅读
1评论
0点赞
发布博客于 3 月前

设计模式之状态模式

一、模式引入生活中对象的状态概念无处不在,例如你拨打一个人手机的时候,有停机,欠费,关机,正在通话中,接通这几种状态,对于不停的状态你肯定有不同的处理方式,例如停机了,你可能以后永远不再拨打这个号码了,欠费和关机可能过一段时间再打,正在通话中可能过个几分钟就会打过去。又如公交车有开门,关门,运行,停车等状态,只有开门才能上车和下车,关门和运行状态的就坐好,停车了就下车在软件开发过程中,应用程序中的部分对象可能会根据不同的状态做出不同的行为。二、定义当一个对象的内在状态改变时允许改变其行为
原创
20阅读
0评论
0点赞
发布博客于 3 月前

java设计模式之策略模式

一、问题引入 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。而我们通常编程的时候,将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。但是这样就引出一个问题,假如我需要要增加一种新的算法,需要修改封装算法类的源代码;更换算法,也需要修改客户端调用代码。有什么方法可以实现新增的,更换的时候不对原有代码做改动呢。如何让算法和对象分开来,使得算法可以独立于使用...
原创
33阅读
0评论
0点赞
发布博客于 3 月前

java设计模式之空对象模式

一、问题引入在我们日常的编码过程中,我们经常会写出类似如下代码Object object = map.get(index);if(object != null){ //调用test方法 object.test() }从上面的代码我们可以看到,我们获取到一个object对象时,需要先对它进行空判断,然后在对object对象进行操作,如果不尽兴判空操作,直接对object对象,有可能会报空指针异常。二、问题解决为了解决上面的问题,假如我们客户端不想做.
原创
30阅读
0评论
0点赞
发布博客于 3 月前

java设计模式之观察者模式

一、定义定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。可以看到中介模式主要是用来封装交互的。二、主要解决对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。也就是将网状结构改为星状结构三、模式举例qq群,五八找房平台等房屋中介四、优缺点1、优点 降低了对象之间的耦合性,使得对象易于独立地被复用。 将对象间的...
原创
36阅读
0评论
0点赞
发布博客于 3 月前

设计模式之迭代器模式

一、定义提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。二、主要解决遍历整合对象三、应用实例JAVA 中的 iterator。四、组成结构迭代器(Iterator):迭代器定义访问和遍历元素的接口。 具体迭代器(ConcreteIterator):具体迭代器实现迭代器接口,对该聚合遍历时跟踪当前位置。 抽象集合(Aggregate):聚合定义创建相应迭代器iterator()方法对象的接口。类比容器类接口Collection,List,Set 具体集合
原创
36阅读
0评论
0点赞
发布博客于 3 月前

设计模式之命令模式

一、定义将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志。以及支持可撤销的操作。简单说就是将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通。二、主要解决在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。三、包含角色Command(抽象命令类):抽象出命令对象,可以根据不同的命令类型。写
原创
53阅读
2评论
0点赞
发布博客于 3 月前

设计模式之责任链模式

一、概念 责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。简单的说就是一个请求有多个对象来处理,这些对象是一条链,但具体由哪个对象来处理,根据条件判断来确定,如果不能处理会传递给该链中的下一个对象,直到有对象处理它为止。二、使用场景有多个对象可以处理同一个请求,具体哪个对象处理该请求待运行时刻再确定。 在不明确指定接受者的情况下,向..
原创
28阅读
0评论
0点赞
发布博客于 3 月前

设计模式之代理模式

一、定义在代理模式(Proxy Pattern)中,创建一个类代表另一个类的功能,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.二、意图为其他对象提供一种代理以控制对这个对象的访问。侧重点为控制三、优缺点优点:1、职责清晰。 2、高扩展性。 3、智能化。缺点:1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外..
原创
41阅读
0评论
0点赞
发布博客于 3 月前

设计模式之享元模式,组合模式,过滤器模式,原型模式,解释器模式,中介者模式

一、享元模式1、定义享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。2、解决问题在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。3、应用实例JAVA 中的 String,如果有则返回,如果没有则创建一个字符串保存在字符串缓存池里面。数据库的数据池。4、优点
原创
42阅读
0评论
0点赞
发布博客于 3 月前

设计模式之外观模式

一、什么是外观模式你家里有各种电器的开关,照明灯开关,家电开关什么的,你平常用用哪个电器就去打开哪个电器的开关。但是你家里也有一个电源总开关,可以控制这些家电的开关使用,这个总共开关便可以理解为这些家电系统的外观模式设计。二、定义外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。外观模式的目的不是给予子系统添加新的功能接口,而是为了让外部减少与子系统内多个
原创
76阅读
4评论
0点赞
发布博客于 4 月前

设计模式之装饰器模式

一、定义 装饰器模式属于结构型模式,在不改变原有对象的基础上将功能附加到对象,相比继承可以更加灵活地扩展原有对象的功能。简单来说创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能二、角色Component,抽象构件  Component是一个接口或者抽象类,是定义我们最核心的对象,也可以说是最原始的对象ConcreteComponent,具体构件,或者基础构件  ConcreteComponent是最核心、最原始、最基本的接口或抽象类Comp..
原创
52阅读
1评论
0点赞
发布博客于 4 月前

设计模式之桥接模式

一、定义桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。二、核心桥接模式 的核心在于 解耦抽象和实现。注:此处的 抽象 并不是指 抽象类 或 接口 这种高层概念,实现 也不是 继承 或 接口实现 。抽象 与 实现 其实指的是两种独立变化的维度。其中,抽象 包含 实现,因此,一个 抽象 类的变化可能涉及到多种维度的变化导致的。三、优缺点1、优点抽象和实现分离:这是 桥接
原创
59阅读
0评论
0点赞
发布博客于 4 月前

设计模式之适配器模式

一、定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 例如我们在给手机充电时,连接到插座上的那个,它的学名就称之为”适配器”。我们国家提供的是220v的电,我们手机充电需要的却只需要5v二、角色目标角色(target):这是客户锁期待的接口。目标可以是具体的或抽象的类,也可以是接口适配者角色(adaptee):已有接口,但是和客户器期待的接口不兼容,需要适配的类或适配者类适配器角色(adapter)...
原创
38阅读
0评论
0点赞
发布博客于 4 月前

设计模式之建造者模式

一、概述 在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。 一个产品都是由多个部件构成的,各个部件可以灵活选择,但其创建步骤都大同小异。这类产品的创建无法用前面介绍的工厂模式描述,只有建造者模式可以很好地描述该类产...
原创
27阅读
0评论
0点赞
发布博客于 4 月前

设计模式之工厂模式

一、什么是工厂模式 工厂模式是用来创建对象的一种最常用的设计模式。是用工厂方法代替new操作的一种模式。我们不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。二、工厂模式的分类简单工厂模式,工厂方法模式,抽象方法模式三、工厂方法模式1、描述提供一个用于创建对象的接口(工厂接口),让其实现类(工厂实现类)决定实例化哪一个类(产品类),并且由该实现类创建对应类的实例2、模式作用可以一定程度上解耦,消费者和产品实现类隔离开,只依赖产品接口..
原创
41阅读
0评论
0点赞
发布博客于 4 月前

Kibana入门知识

六、Kibana1、什么是KibanaKibana 是在ElasticSearch 有了相当多的数据之后,进行分析这些数据用的工具。 但是现在还么有数据呀,为什么就要介绍这个工具呢? 因为Kibana 里面有一个叫做 Dev Tools的,可以很方便地以Restful风格向 ElasticSearch 服务器提交请求2、下载并启动Kibana下载的资源可以依旧从上面下载elasticsearch的链接中下载,解压后点击bin\kibana.bat即可启动,访问http://localhos.
原创
72阅读
0评论
0点赞
发布博客于 4 月前

spring boot 如何集成 elasticsearch

一、前言本篇博客将讲解三种spring boot集成elasticsearch的方法REST Client Jest Spring Data Elasticsearch Repositories二、Spring Data Elasticsearch Repositories方式1、引入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <arti
原创
59阅读
0评论
0点赞
发布博客于 4 月前

Elasticsearch 入门知识

一、什么是Elasticsearch Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。简单的来说就是一个基于Lucene工具包的搜索引擎。二、Elasticsearch的作用全文搜索功能 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。..
原创
57阅读
0评论
0点赞
发布博客于 4 月前

Elasticsearch6.22和kibana6.22 windows版本启动包

Elasticsearch6.22和kibana6.22 版本启动包
rar
发布资源于 4 月前

linux系统weblogic安装及简单使用

一、weblogic是什么 WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。二、weblogic与Tomcat的区别1、Tomcat是什么Tomcat是一个Web应用程序服务器,通常称为Ap..
原创
351阅读
0评论
0点赞
发布博客于 5 月前

lucene介绍与使用

一、什么是lucene Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。 上面这段是百度百科的解释,简单的说就是一个实现全文检索引擎的工具包,里面提供...
原创
100阅读
0评论
0点赞
发布博客于 5 月前

java 自定义注解

一、常用注解@Override,@Resource,@Autowired这三个注解在我们的日常开发中都是即为常用的注解二、如何创建一个自定义注解在java里用class关键字表示文件是一个类,而用@interface关键字则表示创建的是一个自定义注解三、元注解1.@Target表示注解能放在什么位置上,可以选择的位置列表如下:ElementType.TYPE:能修饰类、接口或枚举类型ElementType.FIELD:能修饰成员变量ElementType.METHOD:能修饰
原创
46阅读
0评论
0点赞
发布博客于 5 月前

java如何实现线程同步

一、什么是线程的同步 线程有自己的私有数据,比如栈和寄存器,同时与其它线程共享相同的虚拟内存和全局变量等资源。 在一般情况下,创建一个线程是不能提高程序的执行效率的,所以要创建多个线程。但是当多个线程同时读写同一份共享资源的时候,会引起冲突,例如在多个线程同时对同一个内存地址进行写入,由于CPU时间调度上的问题,写入数据会被多次的覆盖,所以就要使线程同步。这时候就需要引入线程同步机制使各个线程排队一个一个的对共享资源进行操作,而不是同时进行。 简单的说就是,在多线程编程里面,一些数据不...
原创
111阅读
0评论
0点赞
发布博客于 5 月前

JAVA8 关于集合的LAMBDA聚合操作

一、案例展示下面首先给大家展示一些JAVA8 关于集合的LAMBDA聚合操作案例@RequestMapping("/")public String index() { List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl"); //获得空字符串 System.out.println("list集合中空的个数有:"+strings.stream().filter
原创
148阅读
0评论
0点赞
发布博客于 5 月前

java自定义对象集合排序

一、基本对象集合排序import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;/** * @Package: PACKAGE_NAME * @ClassName: IntListTest * @Author: tanp * @Description: ${description} * @Date: 2020/9/8 14:42 */p
原创
92阅读
0评论
0点赞
发布博客于 5 月前

java的内部类的分类

一、java内部类的类型java有4中内部类,分贝为成员内部类(非静态内部类),静态内部类,匿名内部类,局部内部类二、四种内部类的写法/** * @ClassName: Cat * @Author: tanp * @Description: ${description} * @Date: 2020/9/7 15:06 */public class Cat { private String name; /** * 成员内部类:外貌 */
原创
65阅读
0评论
0点赞
发布博客于 5 月前

基于FTP服务器的常用操作工具类

import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPConnectionClosedException;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;import org.apache.log4j.Logger;import org.apache.log4j.spi.
原创
50阅读
0评论
0点赞
发布博客于 6 月前

MappedByteBuffer的使用

一、IO与NIO NIO(JDK1.4)模型是一种同步非阻塞IO,主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(多路复用器)。1、阻塞与非阻塞阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时:阻塞:线程持续等待资源中数据准备完成,直到返回响应结果。 非阻塞:线程直接返回结果,不会持续等待资源准备数据结束后才响应结果。2、同步与异步 同步与异步是指访问数据的机制同步一般指主动请求并等...
原创
97阅读
0评论
0点赞
发布博客于 6 月前

考虑采用静态工厂方法代替构造器

考虑采用静态工厂方法代替构造器public class Coca { private final int carbohydrate; private final int calories; private final int fat; private final int sugar; private Coca(int carbohydrate, int calories, int fat, int sugar) { this.car...
原创
48阅读
0评论
0点赞
发布博客于 6 月前

java final 关键字

一、作用由于语境(应用环境)不同,final 关键字的含义可能会稍微产生一些差异。但它最一般的意思就是声明“这个东西不能改变”。final 关键字的三种应用场合:数据、方法以及类二、 final修饰数据 许多程序设计语言都有自己的办法告诉编译器某个数据是“常数”。常数主要应用于下述两个方面: (1) 编译期常数,它永远不会改变 (2) 在运行期初始化的一个值,我们不希望它发生变化 对于编译期的常数,编译器(程序)可将常数值“封装”到需要的计算过程里。也就是说...
原创
59阅读
0评论
0点赞
发布博客于 6 月前

Think in java书籍阅读小结

一、博客说明本篇博客为本人看完think in java这本书后,个人查漏补缺的一些知识点,记录下来作为笔记使用二、变量初始化顺序 在一个类里,变量初始化的顺序是由变量在类内的定义顺序决定的。即使变量定义大量遍布于方法定义的后面,那些变量仍会在调用任何方法之前得到初始化——甚至在构建器调用之前。public class A{ A(){ str = “abc”; } String str = “a”; }对于静态变量、静态初始...
原创
120阅读
0评论
0点赞
发布博客于 6 月前

spring boot整合mybatis plus使用小结

使用的mysql数据库1.如何在xml里写create语句<select id="createTable" > CREATE TABLE ${name} AS SELECT * FROM TB_HISTORY WHERE 1=2</select>上面这个语句的意思就是,查询TB_HISTORY表字段,并以该表字段创建一个新表,表名为传进来的table变量的值,所以xml可以通过select标签写create语句2.如何在xml里以表名作为变量<
原创
84阅读
0评论
0点赞
发布博客于 6 月前

String a;String a=null;String a=““的区别

一、问题描述很多人在定义一个String类型的变量时会用到以下的方式String a;String a=null;String a=""那么这三种有什么区别呢;二、String a;String a 只是在栈中声明了一个a的内存地址,并没有给它赋初值,也就是在没有在堆内存中申请内存地址,更没有在堆内存指向引用地址;三、String a=null在栈中声明了一个a的内存地址,在堆中也申请了一个内存地址,但是堆中的地址不指向任何栈里的引用地址四、String a=“”
原创
424阅读
0评论
0点赞
发布博客于 6 月前

循环外和循环内定义变量的区别

一、代码展示import java.util.HashMap;import java.util.Map;/** * @Package: raymond * @ClassName: Test * @Author: tanp * @Description: ${description} * @Date: 2020/8/10 14:12 */public class Test { public static void main(String[] args) {
原创
547阅读
0评论
0点赞
发布博客于 6 月前

spring cloud alibaba简介(一)

一、什么是Spring Cloud Alibaba1.是Spring Cloud的子项目2.致力于提供微服务开发的一站式解决方案 项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开 发分布式应用服务; 基于Spring Cloud,符合Spring Cloud标准; 是阿里的微服务解决方案,只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式
原创
119阅读
0评论
0点赞
发布博客于 7 月前

spring cloud alibaba之nacos配置中心(五)

一、博客背景在前面学习的spring cloud系列博客中,是以spring cloud config作为服务的配置中心和客户端,今天来学习下nacos作为配置中心和作为客户端二、配置中心在spring cloud系列的配置中心里需要自己引入相关依赖,并手写一个配置中心服务,而用nacos则不需要,可以直接用nacos服务作为配置中心上图就是nacos作为配置中心,并新建的一种配置三、配置中心新建配置Data ID的匹配规则:${spring.cloud.nacos.c.
原创
128阅读
0评论
0点赞
发布博客于 7 月前

spring cloud alibaba之ribbon服务调用(四)

一、博客前提spring cloud alibaba中的ribbon服务调用和spring cloud中的ribbon服务调用一样,本次直接在上一篇博客中新建的nacos-client中修改代码,下面不在多做说明,直接粘贴代码二、修改启动类修改启动类,在启动类中加上以下代码 @Bean // 标注此注解后,RestTemplate就具有了客户端负载均衡能力 @LoadBalanced RestTemplate restTemplate() { //用
原创
60阅读
0评论
0点赞
发布博客于 7 月前

spring cloud alibaba之feign服务调用(三)

一、博客前提spring cloud alibaba中的feign服务调用和spring cloud中的feign服务调用一样,下面不在多做说明,直接粘贴代码二、修改nacosclient服务修改nacosclient服务,增加一个对外暴露的接口以供外部访问,新增DataController类,直接在类中返回数据package tp;import org.springframework.beans.factory.annotation.Value;import org.springf
原创
223阅读
0评论
0点赞
发布博客于 7 月前

spring cloud alibaba之nacos服务发现(二)

一.新建项目首先新建一个父项目,父项目取名spring-cloud-alibab,然后新建一个子模块,取名nacosclient,具体如何新建父子项目参考我之前的博客,https://blog.csdn.net/bird_tp/article/details/104019583新建完成后,代码结构如下二.修改pom文件首先是在父级项目spring-cloud-alibab中引入依赖spring cloud的依赖,这样后续的子模块都无需在引入<?xml version.
原创
129阅读
0评论
0点赞
发布博客于 7 月前

Spring cloud之gateway网关(十四)

本篇博客仅作为一个笔记使用1.spring cloud gateway初步了解:https://blog.csdn.net/forezp/article/details/837923882.spring cloud gateway 之 Predict:https://blog.csdn.net/forezp/article/details/849266623.spring cloud gateway之filter:https://blog.csdn.net/forezp/article/de..
原创
46阅读
0评论
0点赞
发布博客于 7 月前

spring cloud study demo.zip

本案例中包含为一套基础spring cloud的学习demo,其中包含了eureka服务中心的搭建,eureka服务注册和发现,ribbon的服务调用,feign的服务调用,zuul网关的实现,spring cloud config配置中心和配置客户端的搭建,spring cloud的消息总线,spring cloud hystrix断路器,断路器监控,断路器聚合监控等服务
zip
发布资源于 7 月前

spring cloud之Turbine断路器聚合监控(十二)

一、博客背景 上一章讲解了针对一个微服务的断路器监控,但是微服务通常会是多个实例组成的一个集群。 倘若集群里的实例比较多,难道要挨个挨个去监控这些实例吗? 何况有时候,根据集群的需要,会动态增加或者减少实例,监控起来就更麻烦了。所以为了方便监控集群里的多个实例,springCloud 提供了一个 turbine 项目,它的作用是把一个集群里的多个实例汇聚在一个 turbine里,这个然后再在 断路器监控里查看这个 turbine, 这样就能够在集群层面进行监控啦。二、创建集群监控子模块项目...
原创
96阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之Hystrix Dashboard断路器监控(十一)

一、博客背景 上一篇博客讲解了spring cloud断路器的作用,当被调用服务不可访问时,断路器便会发生作用,那么我们如何得知调用服务是不可用还是可用呢,我们可以利用断路器监控 来可视化掌控这个情况了。本篇将继续对feignserver做改变。二、pom修改在pom文件中加入以下依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g...
原创
68阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之网关zuul(十三)

一、博客背景 基于前面的一些列博客,我们现在有两种微服务,分别是数据微服务dataserver和视图微服务feignserver。他们有可能放在不同的 ip 地址上,有可能是不同的端口。为了访问他们,就需要记录这些地址和端口。 而地址和端口都可能会变化,这就增加了访问者的负担。所以这个时候,我们就可以用网关来解决这个问题。这篇博客就是基本的讲解下zuul的使用。二、新建子模块三、修改pom文件引入相关依赖 <dependencies> <!...
原创
67阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之Hystrix断路器(十)

一、博客背景 在前面的博客里我们讲解了数据服务dataserver,访问服务feignserver,页面展示是通过feignserver服务调用dataserver来展示数据,那么问题来了,假如我的数据服务挂了,访问服务feignserver,访问http://127.0.0.1:8685/getdatas就会出现下面的图片显然,这样的提示信息是非常不友好的,所有本篇博客讲解断路器的一些简单使用。当被访问的微服务无法使用的时候,当前服务能够感知这个现象,并且提供一个备用的方案出来。所以本篇博..
原创
77阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之消息总线(九)

一、博客背景 在上两票博客中,我们新建了配置服务config-server, 也把feignserver服务改造成了配置客户端,但是当需要刷新配置信息的时候,不得不既重启 config-server, 又重启微服务。 这样的体验当然是不太好的。 我们当然是希望一旦 git 上的配置信息修改之后,就可以自动地刷新到微服务里,而不是需要手动重启才可以。本篇博客就讲解spring cloud如何利用消息总线来达到这一功能,本篇将继续对feiginserver做改动。二、RabbitMQ安装与启动..
原创
44阅读
0评论
0点赞
发布博客于 7 月前

Spring cloud之Config配置客户端(八)

一、博客背景上一章博客中,已将讲解如何新建配置服务,这一章来讲解,其他的服务如何从配置服务器上获取配置信息,我们这一章来修改我们的feignserver服务。二、pom修改pom中引入config配置<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artif
原创
49阅读
0评论
0点赞
发布博客于 7 月前

spring cloud 之 Config配置服务端(七)

一、博客背景 有时候,微服务要做集群,这就意味着,会有多个微服务实例。 在业务上有时候需要修改一些配置信息,比如说 版本信息吧~ 倘若没有配置服务, 那么就需要挨个修改微服务,挨个重新部署微服务,这样就比较麻烦。所以为了偷懒, 这些配置信息就会放在一个公共的地方,比如git, 然后通过配置服务器把它获取下来,然后微服务再从配置服务器上取下来。 这样只要修改git上的信息,那么同一个集群里的所有微服务都立即获取相应信息了,这样就大大节约了开发,上线和重新部署的时间了。二、git上传版本信...
原创
51阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之 zipkin服务链路跟踪(六)

一、博客背景 在前面的博客例子里,我们有两个微服务,分别是数据服务data-server和调用数据服务的feign-server,随着业务的增加,就会有越来越多的微服务存在,他们之间也会有更加复杂的调用关系。这个调用关系,仅仅通过观察代码,会越来越难以识别,所以就需要通过 zipkin 服务链路追踪服务器 这个东西来用图片进行识别了。所以本篇博客将对上两篇博客总的内容做修改,来实现服务链路跟踪功能二、pom修改<dependency> <groupId>o..
原创
130阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之feign服务调用(五)

一、博客背景上一篇博客中讲解了ribbon的服务调用,而这篇博客就是讲解通过feign来进行服务间调用,同样是调用数据服务来展示数据。其实Feign 是对 Ribbon的封装,使用注解的方式,调用起来更简单二、新建feign子模块三、修改pom文件相比于ribbon服务,使用feign还需在pom中引入feign依赖 <dependencies> <!--引入eureka-client依赖--> <dependency&
原创
63阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之ribbon服务调用(四)

一、博客背景本篇博客是搭建一个基于ribbon组件的服务调用的微服务,调用上一篇博客中写的数据服务做数据展示二、新建ribbon子模块三、修改pom文件与上篇博客一样,pom文件中只需引入eureka-client依赖,spring-boot-starter-web依赖spring-cloud-starter-netflix-eureka-client 表示这是个 eureka 客户端。spring-boot-starter-web: 表示这是个web服务,会提供控制层四、新建
原创
49阅读
0评论
0点赞
发布博客于 7 月前

spring cloud之Eureka服务发现(三)

一、博客背景本章博客是建立在上一篇博客的基础上,上篇博客讲解了搭建服务注册中心,本篇博客将讲解搭建一个提供数据的微服务,并将服务注册到注册中心去。二、新建数据服务子模块三、修改pompom文件中引入eureka-client依赖spring-cloud-starter-netflix-eureka-client 表示这是个 eureka 客户端。spring-boot-starter-web: 表示这是个web服务,会提供控制层<dependencies> .
原创
46阅读
0评论
0点赞
发布博客于 7 月前

Spring cloud之Eureka服务注册中心(二)

1.新建项目首先新建一个父项目,父项目取名springcloud,然后新建一个子模块,取名eurekaserver,具体如何新建父子项目参考我之前的博客,https://blog.csdn.net/bird_tp/article/details/104019583新建完成后,代码结构如下2.修改pom文件首先是在父级项目springcloud中引入依赖spring cloud的依赖,这样后续的子模块都无需在引入<properties> <jav
原创
49阅读
0评论
0点赞
发布博客于 7 月前

spring cloud简介(一)

一、什么是spring cloud 百度百科的解释为,Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出..
原创
77阅读
0评论
0点赞
发布博客于 7 月前

spring boot设置端口不生效的问题

一、问题背景 对于这种问题,网上一大堆的解决办法,且都能解决,但是我为啥还要记载呢,因为我按照网上的方法一个一个的试了,发现都不生效,所以本篇博客相当于一个工作问题总结二、问题发现 对的,正如我图中截屏那样,我的eurekaserver竟然没有target包!!!!所以无论我怎样修改,修改端口的配置文件都没有生效,理所当然,端口修改也没有生效,最后网上搜索一番发现,是因为我pom文件中多了一行<packaging>pom</packaging>,所以编译时不...
原创
1515阅读
1评论
0点赞
发布博客于 7 月前

git使用命令行提交修改的代码

1.git status (查看当前更改的代码)2.git pull (拉取最新代码)3.git commit config/config.properties -m "fix version"(提交代码到本地仓库)4.git push origin master (推送到远程服务器)
原创
241阅读
0评论
0点赞
发布博客于 7 月前

git使用命令行首次提交代码

1.新建远程仓库首先在你的git上新建一个仓库,记下远程仓库的地址2.git init使用 git init 命令 ,初始化一个git 本地仓库此时会在本地创建一个 .git 的文件夹,一般这个文件夹是隐藏的3.git remote add origin https://*****************************使用git remote add origin https......(刚刚新建远程仓库的地址) ,添加远程仓库到本地4.git add .使用git
原创
292阅读
0评论
0点赞
发布博客于 7 月前

shiro学习四(Spring boot整合shiro读取数据库中的url实现接口请求过滤认证)

一、本篇概述 前面两篇中有讲解Spring boot整合shiro如何通过读取ini文件,数据库用户数据实现登录和权限认证授权等,那么就有人问了,我如果通过数据库中存储的当前用户可以访问哪些rul,来实现过滤当前用户可以访问哪接口或者是可以访问哪些页面,那么该怎么做呢?与上篇博客一样,因篇幅原因粘贴部门重要的代码,全部的代码下载demo案例二、pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http..
原创
150阅读
0评论
0点赞
发布博客于 7 月前

spring boot整合shiro实现url请求过滤

本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能
zip
发布资源于 7 月前

shiro学习三(spring boot整合shiro读取数据库数据实现用户登录,权限认证)

一、本篇概述如果大家看过我shiro类的其他博客,关于shiro的一些基本知识点就不再讲诉,本篇博客主要是讲诉Spring boot如何通过Java配置获取securityManager对象,如何通过调用数据库数据实现认证登录等功能,其中与数据库交互用的mybatis -plus。因为代码量比上篇博客多,我就不将所有代码粘贴出来了,主要展示一些重要的部分,如果需要整个demo的,可以下载我的案例二、pom依赖粘贴项目中需要引入的依赖信息‘ <!-- 添加shrio依赖
原创
171阅读
0评论
0点赞
发布博客于 8 月前

shior2.zip

本案例是基于springboot+mybatis plus作为基础框架,整合shiro安全框架做的登录,权限认证案例,其中包含了如何自定义relam,shiro如何读取数据库实现权限认证
zip
发布资源于 8 月前

shiro学习二(Spring boot整合shiro读取ini权限配置文件实现认证)

一、代码展示1.user对象import lombok.Data;/** * @Package: com.shiro1 * @ClassName: User * @Author: tanp * @Description: 用户实体 * @Date: 2020/7/3 9:40 */@Datapublic class User { private String userName; private String password; public User(
原创
181阅读
0评论
0点赞
发布博客于 8 月前

shiro学习一(shiro基本知识点)

一、什么是Shiro Shiro是一套是Java的一个安全框架,实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。  其主要功能为用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。二、Shiro和Spring Security比较(1)Shiro比Spring更容易使用,实现和最重要的理解(2)Spring Security更加知名的唯一原因是因为品牌名称...
原创
80阅读
0评论
0点赞
发布博客于 8 月前

手写守护线程优雅退出程序

一、使用背景当一个程序中包含多个线程时,多个线程并发运行不同的业务,我们不能粗暴的直接退出程序,可以手动输入命令,程序读取到相关命令,代码中实现线程的退出,这样可以使当前运行线程的业务运行完毕在退出程序。二、实现代码main方法所在类/** * @ClassName: TestMain * @Author: tanp * @Description: ${description} * @Date: 2020/6/11 20:43 */public class TestMain {
原创
144阅读
0评论
0点赞
发布博客于 8 月前

idea打条件断点

一、使用背景在开发的过程中,断点能够有效的帮助我们了解程序功能,但是有时候有些方法会被很多地方请求,但是这个方法又很重要,需要通过断点来查看方法的执行业务,例如重写的HttpServletRequestWrapper,中的getParameter方法,像这种方法基本上只要涉及到String msg = request.getParameter("msg");从请求中获取字段,就会调用该方法,而且调用的十分平凡,假如,我们只想要看在获取msg的值时的业务,这时我们就可以设置一个条件断点,
原创
81阅读
0评论
0点赞
发布博客于 8 月前

手写日志框架

话不多少,直接上代码日志实现类import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Date;/*** 日志系统的抽象类,用于记录日志信息。不同级别的日志记录到不同的日志文件中。<br/>* 日志文件的的格式为:logs/yyyy-MM-dd/info、w...
原创
246阅读
0评论
0点赞
发布博客于 8 月前

Spring boot项目集成docker

一、编写目的 其实网上已经有一大堆这样的博客了,差不多也都是一样,之所以写下来,就是因为在参照网上博客学习的过程中,发现有些细节讲的不是很明了,导致实际操作的时候会有各种各样的错误,所以写一篇博客用来记录下自己的实操过程,但是可能大部分内容还是和其他的博客内容相似。二、spring boot为什么要集docker 一些比较传统公司工作的小伙伴,或者刚毕业不久的小伙伴可能会问,为什么要集成这个docker,集成的作用是什么啊?首先我们来来说一下,传统意义上的部署要走哪些流程...
原创
634阅读
0评论
1点赞
发布博客于 8 月前

DockerFile创建Docker镜像并启动服务

1.新建文件夹用来存放dockerfile文件 : mkdir dockerfiles2.新建dockerfile文件 :touch Dockerfile3.编写dockerfile文件并保存:viDockerfileFROM nginxRUN echo 'hello nginx ' > /usr/share/nginx/html/index.htmlFROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。...
原创
732阅读
0评论
0点赞
发布博客于 9 月前

spring security 学习二(通过数据库用户实现身份认证,权限识别)

一、Spring Security认证具体实现Spring Security通过filter来控制web应用的安全,但filter自己不干事,分别委托给了认证管理器和决策管理器,认证管理器和决策管理器再分别委托给Provider和Voter,就这样一级级委托下来,委托的最底层就是需要我们根据实际情况实现的逻辑。可以看下图:根据我们这次的目标,想用数据库来储存用户的认证数据,那么我们就需要一个操作数据库的Provider,这个Spring Security内部已经有了实现,就是DaoAuthent
原创
216阅读
0评论
0点赞
发布博客于 9 月前

springboot-security.rar

spring boot项目配置spring security,然后通过读取数据库用户以实现权限认证,通过数据库中用户对象配置权限实现页面拦截,即哪个页面所有用户都可以反问,哪些页面只有哪些特定用户可以访问
rar
发布资源于 9 月前

spring security 学习一(spring boot项目配置spring security实现页面拦截)

一、spring security 功能spring security 的核心功能主要包括:认证(你是谁),授权(你能干什么),攻击防护(防止伪造身份)二、简单demo1.首先在自己新建好的spring boot项目引入以下依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf.
原创
160阅读
0评论
0点赞
发布博客于 9 月前

spring boot项目修改启动商标

一、页面展示二、实现方法访问http://patorjk.com/software/taag/网址,输入你需要的商标信息,然后将其复 制到文本文件中,然后以文件名 banner.txt 保存到 Sprin Boot 项目的 resources 目录中 。启动 Spri Boot 应用后,即可看到你定义的商标...
原创
85阅读
0评论
0点赞
发布博客于 9 月前

如何使用@Autowired注入含有多个实现类的接口

一、问题描述在spring的注解使用中,@Autowired注解的作用是注入bean,但是假如有一个接口,它包含两个实现类,这个时候应该怎么实现注入呢?二、单个实现类使用情况controller:@RestController@RequestMapping(value = "/user")public class UserController { @Autowired private IUserService iUserService ; @Reque
原创
1608阅读
0评论
0点赞
发布博客于 9 月前

spring boot项目实现页面跳转

一、配置maven<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>二、新建html页面三、代码实现方式一import org.springframework.stereotype.Control
原创
787阅读
0评论
2点赞
发布博客于 9 月前

SpringBoot项目实现添加拦截器

一、首先写配置类import com.tp.mybatisplusstudy.interceptor.TestInterceptor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.Inte
原创
501阅读
0评论
0点赞
发布博客于 9 月前

sm4算法加密解密

一、基本知识分组加密(英语:Block cipher),又称分块加密或块密码,是一种对称密钥算法。它将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。 对称加密、加密算法主要可以分为两种,一个是非对称加密算法,另一个就是对称加密算法。对称加密简单来说就是有一个明文,通过一个密钥加密之后得到一个密文,这个密文可以通过相同的密要解密得出和原来相同的明文二、sm...
原创
4805阅读
1评论
5点赞
发布博客于 10 月前

mybatis plus实现curd的方式

mybatis实现curd的方式有三种一、继承IService接口,直接调用该接口中的方法方法包含以下接口方法二、继承BaseMapper,直接调用该接口中的方法上面两中方法,下面展示代码controllerpackage com.tp.mybatisplusstudy.controller;import com.baomidou.mybatisplus.co...
原创
507阅读
0评论
0点赞
发布博客于 10 月前

Jmeter压力测试后台简单使用

一、JMeter是什么Apache JMeter是Apache组织开发的基于Java的压力测试工具。二、使用场景首先压力测试工具就已经说明他的使用场景了,我这次的简单使用就是拿来请求我自己写的后台接口三、使用截图在上面的图片中,基本就已经满足一个接口压力测试的简单使用了四、新建过程...
原创
172阅读
0评论
0点赞
发布博客于 10 月前

java通过ScheduledExecutorService实现定时任务

一、java实现定时任务的方式java完全不引人其他框架,自己实现定时任务的方法常用的大概有两种,JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService;二、Timer方式实现代码如下import java.util.Timer;import java.util.TimerTask;public class TestA {...
原创
655阅读
0评论
0点赞
发布博客于 10 月前

java8中::的作用与LambdaQueryWrapper对象使用

一、LambdaQueryWrapper,和::使用案例首先我们来看下使用案例LambdaQueryWrapper<Busmanager> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Busmanager::getState, 0);queryWrapper.eq(Busmanager::...
原创
16097阅读
0评论
4点赞
发布博客于 10 月前