自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张铎

不将就,知道做到。

  • 博客(242)
  • 收藏
  • 关注

原创 2021年总结

今年还行,没有大起大落,穷的还算稳定。

2022-01-02 21:35:46 400 1

原创 Docer容器客户端在启动的镜像的时候报错Error invoking remote method ‘docker-start-container‘: Error: (HTTP code 500

打开docker容器,启动redis镜像,报错:Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: listen tcp 0.0.0.0:2181: bind: An attempt was made to access a socket in a way forbidden by its access per.

2021-10-18 10:22:59 6761 3

原创 ToB和ToC产品的差异,知道这几点就够了

最近新公司涉及到ToB和ToC。以前对这块很模糊,所以上网查了一下。主要有以下几个方面不同:1. 用户群体所谓用户群体,就是什么样的人在使用你的产品。ToC和ToB最大的差别就是用户群体不同。ToC的用户基本上是个人用户,而每个人都是个性鲜明的个体,想让你的产品满足所有人的个性显然是困难的,甚至于,不太可能的,而我们要做的,正是抓住用户群体的共性,满足它们。而ToB的用户普遍是企业,是购买我们产品的客户。客户和用户的区别在于,客户所关注的不是自身的贪,痴,嗔。而是产品是否能够提升KPI,产品的性价比

2021-10-12 10:41:08 3703

原创 rabbitmq交换器的四种模式

rabbitmq交换器的四种模式:1.fanout:fanout类型的Exchange会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。2.direct:direct类型的Exchange会把消息路由到那些binding key与routing key完全匹配的Queue中。3.topic:topic类型的Exchange在匹配规则上进行了扩展,它与direct类型的Exchage相似,也是将消息路由到binding key与routing key相匹配的Queue中,..

2021-09-21 08:25:07 417

原创 https原理,工作流程

HTTPS = HTTP + SSL/TLS,即用SSL/TLS对数据进行加密和解密,Http进行传输。 SSL,即Secure Sockets Layer(安全套接层协议),是网络通信提供安全及数据完整性的一种安全协议。 TLS,即Transport Layer Security(安全传输层协议),它是SSL3.0的后续版本。 客户端发起Https请求,连接到服务器的443端口。 服务器必须要有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。 服务器将自己的数..

2021-09-20 16:50:45 238 2

原创 Bean初始化操作-SpringMVC中@ControllerAdvice注解的三种使用场景

一. Bean初始化操作1. 简介很多时间当一个Bean被创建出来后,我们希望做一些初始化操作,如初始化数据、缓存预热等。有以下三种方法:初始化方法initMethod 注解@PostConstruct InitializingBean的afterPropertiesSet方法2. 三种方法实现先准备一个类用于测试,代码如下:public class BeanLifeCheck implements InitializingBean { private static fi

2021-09-19 09:40:34 884 3

原创 Java中POJO、VO、DTO、PO、Entity的区别

最近发现很多小伙伴在规划项目结构的时候,总是无法区分POJO、VO、DTO、PO、Entity特此记录一下,方便大家学习1、POJOPlain Ordinary Java Object无规则简单Java对象,一个中间对象,可以转化为VO、DTO、PO2、VOView Object表示层对象,一般在Controller层使用,对应页面显示的数据对象。3、DTOData Transfer Object数据传输对象,一般在Service层使用,如PO有30个属性,页面VO只显示1

2021-09-19 09:27:14 609 2

原创 Spring是怎么解决循环依赖的?

Spring是怎么解决循环依赖的?首先,Spring 解决循环依赖有两个前提条件:不全是构造器方式的循环依赖必须是单例基于上面的问题,我们知道Bean的生命周期,本质上解决循环依赖的问题就是三级缓存,通过三级缓存提前拿到未初始化完全的对象。第一级缓存:用来保存实例化、初始化都完成的对象第二级缓存:用来保存实例化完成,但是未初始化完成的对象第三级缓存:用来保存一个对象工厂,提供一个匿名内部类,用于创建二级缓存中的对象假设一个简单的循环依赖场景,A、B互相依赖。A对象的..

2021-09-19 09:24:47 1947 3

原创 看完就明白_spring事务的7种传播行为

什么叫事务传播行为?听起来挺高端的,其实很简单。即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的。Spring定义了七种传播行为:1、PROPAGATIO...

2021-09-14 09:18:05 1017 2

原创 谈谈Spring中都用到了哪些设计模式?

工厂设计模式Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。两者对比:BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于BeanFactory来说会占用更少的内存,程序启动速度更快。 ApplicationContext :容器启动的时候,不管你用没用到,一次性创建所有 bean 。BeanFactory 仅提供了最基本的依赖注入支持,ApplicationContext 扩展了 Bean

2021-09-14 08:58:18 957 1

原创 spring注解常用汇总

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。@Scope注解 作用域@Lazy(true) 表示延迟初始化@Service用于标注业务层组件、@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数据访问组件,即DAO组件。@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。@Scope用于指定scope作用域的(用在类上.

2021-09-05 15:58:16 2048 25

原创 一个接口有多个实现类时,调用接口时,如何判定调用的哪个实现类?

一个接口对应多个实现类一个接口对应对个实现类,需要注入指定的实现类。如:Interface接口下有两个实现类InterfaceImpl1和InterfaceImpl2。接口:package com.example.service;public interface Interface1 { void fun1();}对应实现类1InterfaceImpl1:@Service("s1")public class Interface1Impl1 implements Inte

2021-09-05 15:57:05 21272 6

原创 mysql 7种JOIN理论,看完你就懂了

select * from tbl_emp a inner join tbl_dept b on a.deptId=b.id;select * from tbl_emp a LEFT JOIN tbl_dept b on a.deptId=b.id;select * from tbl_emp a RIGHT JOIN tbl_dept b on a.deptId=b.id;select * from tbl_emp a LEFT JOIN tbl_dept b on a.deptId=b.id

2021-08-09 08:53:34 2448 6

原创 VMware该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权

启动VMware虚拟机,无法正常打开并出现以下信息:原因:这是因为当运行一个“虚拟系统”时,为防止该系统被另外一个VMware程序打开,导致数据被修改或损坏,VMware会自动在该“虚拟系统”所在的文件夹下,生成三个锁定文件。分别为:.vmx.lck(虚拟系统锁定),.vmdk.lck(虚拟磁盘锁定),*.vmem.lck(虚拟内存锁定)。当该虚拟系统正常关机后,VMware解锁,.vmdk.lck和.vmem.lck文件夹消失。当该虚拟机程序正常关闭后,*.vmx.lck文件夹消失。但是若出现

2021-08-08 14:50:33 2065 2

转载 mysql的逻辑架构介绍

连接层最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端服务端工具实现的类似于tcp/p的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限服务层第二层架构主要完成大多少的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、.

2021-08-07 11:19:21 2782 2

原创 JavaBean和SpringBean的区别?

什么是JavaBean:JavaBean是一种JAVA语言写的可重用组件。JavaBean符合一定规范写的Java类,是一种规范。它的方法命名,构造以及行为必须符合特定的要求:1.所有属性为private 2.这个类必须具有一个公共的(public)无参构造函数 3.private属性必须提供public的getter和setter来给外部访问,并且方法的命名也必须遵循一定的命名规范 4.这个类是可序列化的,要实现serializable接口什么是SpringBean:SpringBea

2021-07-25 16:47:59 3402 2

原创 什么是开源软件?

什么是开源软件?开源软件就是把软件程序与源代码文件一起打包提供给用户。用户既可以不受限制地使用该软件的全部功能,也可根据自己的需求修改源代码,修改完之后再发布出去。用户具有使用自由、修改自由、重新发布自由,因此开源软件都有着很高的人气,大家聚集在开源社区,共同推动开源软件的进步。...

2021-07-25 08:47:43 10150 2

原创 springboot使用日志报错 trace(java.util.function.Supplier<java.lang.String>) in Logger cannot be applied to

Logger logger = LoggerFactory.getLogger(getClass()); // 日志的级别从低到高,如下排列 @Test public void testLog() { logger.trace("这个trace日志"); logger.debug("这个debug日志"); logger.info("这个info日志"); logger.warn("这个warn日志");

2021-07-24 09:07:00 2800 4

原创 内存泄漏和内存溢出有啥区别?

1、内存泄漏(Memory Leak):是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。2、内存溢出(Memory Overflow):指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。3、二者的关系内存泄漏的堆积最终会导致内存溢出。内存溢出就是你要的内存空间超过了系统实际分配给你的空间,此时系统相

2021-07-20 15:57:33 11001 4

原创 springmvc整体执行流程

2021-07-19 14:45:48 1633 5

原创 centos7设置开机默认使用root账户登陆

使用root账户进入系统:vi /etc/gdm/custom.conf在[daemon]下写入:AutomaticLoginEnable=TrueAutomaticLogin=root重启系统之后可以直接进入root账户。

2021-07-13 19:51:53 6842 5

原创 linux中网络连接的三种模式:桥接模式,NAT模式,主机模式

1. 什么是桥接模式:2. 什么是NAT模式什么是主机模式:独立的系统,不和外部系统连接网络。

2021-07-13 16:24:09 2216 2

原创 mysql的数据类型

2021-07-10 14:50:50 2875 3

原创 开发中如何选择集合

2021-07-06 09:37:23 2150 3

原创 javac编译提示编码GBK的不可映射字符

使用命令行javac命令编译java文件,提示错误:编码GBK的不可映射字符。在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操作系统默认采用的编码格式。JDK根据操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),把源程序从默认编码格式转化为JDK内部默认的UNICODE格式放入内存中。然后把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是

2021-06-27 16:15:35 2688 3

原创 Spring Bean与javaBean区别

传统的java应用中,javabean遵循一些规范,规范如下:1、这个类必须具有一个公共的(public)无参构造函数;2、所有属性私有化(private);3、私有化的属性必须通过public类型的方法(getter和setter)暴露给其他程序,并且方法的命名也必须遵循一定的命名规范。4、这个类应是可序列化的。(比如可以实现Serializable 接口,用于实现bean的持久性)Spring容器对Bean没有特殊要求,不像javaBean一样遵循一些规范(不过对于通过设置方法注入的Bean,

2021-06-26 21:19:48 2549 5

原创 applicationContext & BeanFactory区别

applicationContext & BeanFactory区别BeanFactory接口(1) spring的原始接口,针对原始接口的实现类功能较为单一(2)BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象ApplicationContext接口(1)每次容器启动时就会创建容器中配置的所有对象(2)提供了更多功能(3)从类路径下加载配置文件: ClassPathXmlApplicationContext从硬盘的绝对路径下加载配置文件:FileSyste

2021-06-21 23:21:34 2657 6

原创 PageHelper的使用

在pom文件中加入依赖<!--PageHelper依赖--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.8</version> </dependency>这里用的是mybati.

2021-06-18 09:18:20 2824 4

原创 Intellij IDEA 快捷键整理

Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前方法的声明Ctrl+P,可以显示参数信息.

2021-06-16 19:44:04 1890 2

原创 sql #和$的区别

select id,name, email,age from student where id=#{studentId} # 的结果: select id,name, email,age from student where id=? select id,name, email,age from student where id=${studentId} $ 的结果:select id,name, email,age from student where id=1001 Str..

2021-06-13 16:46:51 3674 2

原创 解决IDEA中的CTRL+/ 快捷注释键不自动缩进

1、情况概述如下图所示情况今天在安装了idea2020.1后,在xml中使用了ctrl+/快捷键注释后,看到如下图情景 很让人难受,在写代码过程中每次还得在手动缩进一下,或者进行删减空格,大大的影响开发的效率。java注释代码块的问题 如下图xml注释代码块的问题 如下图2、解决方法.java快捷注释不缩进解决方法idea中 点击 file–>settings --> Editor --> CodeStyle–> Java选择 Code Generation 进行

2021-06-12 15:51:00 3619 30

原创 Redis学习记录

1. Redis简介:Redis(Remote Dictionary Server 远程字典服务器 ) C语言编写开源的基于内存运行并支持持久化高性能的数据库。能够存储数据、管理数据的一种软件。2. Redis特点:支持数据持久化:可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用支持多种数据结构:Redis不仅仅支持简单的Key-Value类型的数据,同时还提供list set zset hash等数据结构的存储。支持数据备份: master-slave模式的数据备3. 安装Red

2021-06-12 11:10:07 1680 28

原创 全局变量和局部变量的区别

全局变量和局部变量的区别如下:作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量。...

2021-06-06 19:53:56 2004 19

原创 SpringMVC执行流程

2021-05-22 09:05:25 333 19

原创 多拦截器的执行顺序

2021-05-22 08:41:18 640 25

原创 工厂模式

核心本质:1. 实例化对象不使用new 用工厂方法代替2. 将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。三种模式:1. 简单工厂模式:用来生产同一等级结构中的任意产品2.工厂方法模式: 用来生产同一等级结构中的固定产品3. 抽象工厂模式:围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。...

2021-05-16 20:02:15 708 3

原创 @Autowired和@Resource的区别

2021-05-07 11:57:44 652 27

原创 SonarQube Java 规则

最近目在用SonarQube,扫出了几处bug, 然后百度了一下SonarQube Java 规则 ,感觉挺不错的分享给大家。https://blog.csdn.net/fujuacm/article/details/110200155

2021-05-06 17:47:41 746 24

原创 HashTable和HashMap的区别

其实HashTable、HashMap在线程中和Vector、ArrayList的区别一样;下面就来详细说说:1.继承父类不同Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类;但二者都实现了Map接口。2.线程的安全性  1. HashTable是同步(方法中使用了Synchronize)的;而HashMap是未同步(方法中缺省Synchronize)的。   2.Hashtable 线程安全,因为它每个方法中都加入了Synchr...

2021-04-27 20:27:48 426 26

原创 IaaS,PaaS,SaaS 的区别

最近产品用到IaaS,PaaS,SaaS 然后在百度了一下,感觉这篇文章可以很好的表达出他们是什么以及他们之间的区别。http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html

2021-04-16 14:39:51 633 20

空空如也

空空如也

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

TA关注的人

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