![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【java】
张铎(信念)
知道做到,不将就。
展开
-
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 · 6867 阅读 · 3 评论 -
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 · 914 阅读 · 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 · 638 阅读 · 2 评论 -
Spring是怎么解决循环依赖的?
Spring是怎么解决循环依赖的?首先,Spring 解决循环依赖有两个前提条件:不全是构造器方式的循环依赖必须是单例基于上面的问题,我们知道Bean的生命周期,本质上解决循环依赖的问题就是三级缓存,通过三级缓存提前拿到未初始化完全的对象。第一级缓存:用来保存实例化、初始化都完成的对象第二级缓存:用来保存实例化完成,但是未初始化完成的对象第三级缓存:用来保存一个对象工厂,提供一个匿名内部类,用于创建二级缓存中的对象假设一个简单的循环依赖场景,A、B互相依赖。A对象的..原创 2021-09-19 09:24:47 · 1957 阅读 · 3 评论 -
看完就明白_spring事务的7种传播行为
什么叫事务传播行为?听起来挺高端的,其实很简单。即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的。Spring定义了七种传播行为:1、PROPAGATIO...原创 2021-09-14 09:18:05 · 1031 阅读 · 2 评论 -
谈谈Spring中都用到了哪些设计模式?
工厂设计模式Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。两者对比:BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于BeanFactory来说会占用更少的内存,程序启动速度更快。 ApplicationContext :容器启动的时候,不管你用没用到,一次性创建所有 bean 。BeanFactory 仅提供了最基本的依赖注入支持,ApplicationContext 扩展了 Bean原创 2021-09-14 08:58:18 · 961 阅读 · 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 · 2052 阅读 · 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 · 21874 阅读 · 6 评论 -
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 · 3412 阅读 · 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 · 2822 阅读 · 4 评论 -
内存泄漏和内存溢出有啥区别?
1、内存泄漏(Memory Leak):是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。2、内存溢出(Memory Overflow):指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。3、二者的关系内存泄漏的堆积最终会导致内存溢出。内存溢出就是你要的内存空间超过了系统实际分配给你的空间,此时系统相原创 2021-07-20 15:57:33 · 11031 阅读 · 4 评论 -
springmvc整体执行流程
原创 2021-07-19 14:45:48 · 1644 阅读 · 5 评论 -
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 · 2699 阅读 · 3 评论 -
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 · 2831 阅读 · 4 评论 -
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 · 1682 阅读 · 28 评论 -
SpringMVC执行流程
原创 2021-05-22 09:05:25 · 335 阅读 · 19 评论 -
多拦截器的执行顺序
原创 2021-05-22 08:41:18 · 643 阅读 · 25 评论 -
工厂模式
核心本质:1. 实例化对象不使用new 用工厂方法代替2. 将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。三种模式:1. 简单工厂模式:用来生产同一等级结构中的任意产品2.工厂方法模式: 用来生产同一等级结构中的固定产品3. 抽象工厂模式:围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。...原创 2021-05-16 20:02:15 · 708 阅读 · 3 评论 -
@Autowired和@Resource的区别
原创 2021-05-07 11:57:44 · 660 阅读 · 27 评论 -
SonarQube Java 规则
最近目在用SonarQube,扫出了几处bug, 然后百度了一下SonarQube Java 规则 ,感觉挺不错的分享给大家。https://blog.csdn.net/fujuacm/article/details/110200155原创 2021-05-06 17:47:41 · 766 阅读 · 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 · 429 阅读 · 26 评论 -
EL表达式
Expression Language表达式语言,替代JSP页面中数据访问时的复杂编码,可以非常便捷的取出域对象(pageContext request session application)中保存的数据,前提是一定要先setAttribute ,EL就相当于在简化getAttribute${变量名} 变量名就是setAttribute对应的的key值 EL 对于4种域对象的查找顺序; pageContext request session applcation 按照上述的顺序进行查找,找到立即原创 2021-04-06 15:30:06 · 1180 阅读 · 21 评论 -
spring boot 中修改文件上传大小的配置
在做spm项目的时候,手机端上传图片,会报一个413错误,经过排查,原来是nginx 配置和后端代码上传文件大小的错误。先说后端代码的错误,错误信息:Connection terminated as request was larger than 10485760....//因请求而终止的连接大于10485760。。。。此错误属于在sping boot框架中的错误,在spring boot中默认上传图片的大小为1M,如果上传图片的大小超过了它,那么就会报如上类似的错误,此时需要修改框架中上原创 2021-03-05 19:56:49 · 1620 阅读 · 7 评论 -
FastDFS集群搭建与配置
见网盘资料 网盘链接 提取码:uuoh原创 2020-12-04 08:19:40 · 222 阅读 · 31 评论 -
Mongodb学习入门
官网 启动mongodb服务器:mongod 修改默认端口:mongod --port 新的端口号 mongodb默认的端口:27017 设置mongodb数据库的存储路径:mongod --dbpath 路径 ⭐连接mongodb数据库:mongo 三大基本概念: 数据库 database 集合(数组) collection 类似与SQL中的数据表,本质上是一个数组,里面包含看多个文档对象,[{},{},{}] 文档对象 ...原创 2020-12-04 08:14:42 · 261 阅读 · 16 评论 -
@Controller和@RestController的区别
我们一般都会在Controller上加上@Controller注解,但是有时候也见有加上@RestController的,现在就说说他们的区别:1、不同。@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。在方法上加@ResponseBody注解,也可以返回实体对象。@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。@RestController相当于@ResponseBo原创 2020-11-29 08:47:07 · 4373 阅读 · 16 评论 -
nginx是什么?
1.nginx基本概念1.1 nginx是什么,做什么事情nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。nginx专为性能优先而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。1.2 反向代理(1)正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问原创 2020-11-27 09:03:23 · 7331 阅读 · 6 评论 -
AOP常用术语
原创 2020-09-26 11:30:09 · 506 阅读 · 5 评论 -
Maven 基础
Maven 基础Maven 的Apache公司开源项目,它是一个项目的构建工具。用来管理依赖1. maven的好处使用传统项目开发项目,项目大小过大使用Maven开发项目,项目大小只有几十K同样的代码,实现的功能都一样,maven项目如何做到的?可以初步推断maven项目中一定没有jar包,没有jar包的maven项目如何运行?2.maven 的好处如何实现maven的两大核心: 依赖管理:对jar包管理过程 项目构建:项目在编码完成后,对项...原创 2020-09-19 09:27:23 · 653 阅读 · 4 评论 -
面向对象的思想
面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程。面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于继承性,就是两种事物间存在着一定的所属关系,那么继承的类就可以从被继承的类中获得一些属性和方法;这就提原创 2020-08-04 21:26:18 · 386 阅读 · 3 评论 -
短路与&& 和 逻辑与& 有什么区别
首先这两个运算符的运算结果没有任何区别,完全相同只不过“短路与&&”会发生短路现象1.什么是短路现象呢? 右边表达式不执行,这种现象叫做短路现象。2.什么时候使用&&,什么时候使用& ? 使用短路与&& 的时候,当左边的表达式为false的时候,右边的表达式不执行,这种现象被称为短路 从效率方面来说,&& 比 & 的效率高一些,因为逻辑与& 不管第一个表达式结果是什么,第二个表达式一定会...原创 2020-06-29 09:40:20 · 1346 阅读 · 13 评论 -
注解到底是干什么的?
说起注解,我们都用过注释:用文字描述程序的.给程序员看的。那么注解和注释相似。下面看一下注解的介绍1.概念:JDK1.5以后的新特性,说明程序的。给计算机看的。定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。概念描述: JDK1.5之后的新特性 说明程序的 使用注解:@注解名称 ...原创 2020-06-25 15:47:32 · 908 阅读 · 10 评论 -
JDBC控制事务
1.什么是事务一个包含多个步骤的业务操作,如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。2.操作:2.1 开启事务2.2 提交事务2.3 回滚事务3.使用Connection对象来管理事务3.1 开启事务:SetAutoCommit(boolean autoCommit ):调用该方法设置参数为false,即开启事务 *在执行sql之前开启事务//开启事务conn.setAutoCommit(false);3.2 提交事务:Co...原创 2020-06-15 16:01:05 · 203 阅读 · 22 评论 -
一分钟了解JDBC
1.JDBC是什么呢?JDBC是java database connectivity 的缩写,也就是java数据库连接,用java语言操作数据库2. JDBC是怎么操作数据的?我们在写程序的时候需要连接数据库,那么数据库的种类有许多,比如mysql、oracle、DB2等等,要想连接数据库,程序员必须写对应的代码,如果数据库很多,是不是要写很多种代码,这样造成了很大的麻烦,这时候程序员就期望使用统一的一套java代码可以操作所有的关系型数据库。于是sun公司就写了一套这样的代码,叫做JDBC。原创 2020-06-14 09:34:27 · 705 阅读 · 35 评论 -
数据库的基本概念--mysql数据库的安装(附mysql安装包)
1. 数据库的英文单词:DataBase 简称:DB2.什么是数据库? 用于存储和管理数据的仓库3.数据库的特点: 1.持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库---SQL4.常见的数据库软件: Oracle MySQL SQL Serve...原创 2020-04-29 08:45:35 · 897 阅读 · 31 评论 -
final finally finalize有什么区别?
final 关键字 final修饰的类无法继承 final修饰的方法无法覆盖 final修饰的变量不能重新赋值。finally 关键字 和try一起联合使用。 finally语句块中的代码是必须执行的。finalize 标识符 是一个Object类中的方法名。 这个方法是由垃圾回收...原创 2020-04-26 16:09:20 · 438 阅读 · 20 评论 -
String int Integer之间互相转换
直接上图:原创 2020-04-26 09:46:33 · 666 阅读 · 21 评论 -
java注释的作用
1、什么是注释,有什么用? 注释是对java源代码的解释说明。 注释可以帮程序员更好的理解程序。2、注释信息只保存在java源文件当中,java源文件编译生成的字节码class文件, 这个class文件中是没有这些注释信息的。3、在实际的开发中,一般项目组都要求积极的编写注释。这也是一个java软件工程师的基本素养。4、注释不是写的越多...原创 2020-04-18 10:40:35 · 3833 阅读 · 23 评论 -
java运行原理
1.java程序非常重要的两个阶段:1.1 编译阶段: java程序员编写的java代码这种普通文本必须经过一个编译,将这个普通文本代码变成字节码,jvm能够识别字节码。java代码这种普通文本变成字节码的过程,被称为编译。注意:java代码这种普通文本被称为:java源代码。源代码不能直接运行,必须编译成字节码,才能运行。2.2 运行阶段java程序从开发到最终运行经历了什么...原创 2020-04-18 10:28:57 · 758 阅读 · 34 评论 -
JDK、JRE、JVM三者之间的关系?
JDK: java开发工具箱JRE:java运行环境JVM:java虚拟机JDK包括JRE,JRE包括JVMJRE和JDK都可以独立安装,有单独的JDK安装包,也有JRE安装包,没有单独的JVM安装包。...原创 2020-04-18 08:39:36 · 226 阅读 · 3 评论