- 博客(63)
- 收藏
- 关注
原创 Stream的常用API应用场景
Optional 当“防空指针链”,自定义收集器当“通用算法模板”。// 防空指针链// 自定义收集器:把 stream → LinkedHashSet(保持顺序又去重)LinkedHashSet::new, // 供应器Set::add, // 累加器}, // 组合器// 完成器常见坑Optional 不要 get() 直接拆包;用 orElse/orElseThrow 结束。
2025-09-18 18:02:41
227
原创 IIS中检测不到AspNetCoreModuleV2模块
安装了.net 2.2 的runtime(运行时),但是在IIS中还是没有检测出来AspNetCoreModuleV2模块。
2024-08-26 16:49:57
1696
原创 打包Springboot项目,jar包和配置文件分离,实现在外部修改配置文件
上面是springboot默认去拿自己的核心配置文件的优先级,还有一种最高优先级的方式是项目启动时通过命令的方式指定项目加载核心配置文件,命令如下。原文章:https://blog.youkuaiyun.com/woshichenjianmin/article/details/114884884。项目部署时,需要将配置文件外置,这样方便后期运维人员进行修改配置项。classPath(即resources目录)的config目录。Jar包同级目录的config目录。classpath目录。
2024-08-20 11:42:37
703
原创 同一台电脑上安装不同版本的nodejs(搭配VSCode)
今天拉取了一个前后端分离的项目,运行前端的时候,出现node版本不匹配的情况。本文章将从安装node.js开始到VSCode使用进行讲解。
2024-08-18 15:54:13
1372
1
原创 在服务器上使用Dockerfile创建springboot项目的镜像和踩坑避雷
我这里使用的是宝塔面板进行辅助,点击文件,直接将jar包拖入右侧空白处就能上传。我是步骤①正常,手动执行了步骤②和③ ,再执行步骤5构建容器的命令,就正常了。这些规则将允许Docker容器与主机和其他容器进行网络通信。springboot项目打包——maven的。将上面这个jar包上传至步骤1创建的目录下。命令最后一个是点,切记不要忘记。宿主机和容器端口都是11003。使用的镜像是test-daka。在上述操作中,步骤5有个坑。
2024-08-02 10:56:37
857
原创 使用宝塔对程序、依赖、配置文件分离的springboot项目进行部署运行
【代码】使用宝塔对程序、依赖、配置文件分离的springboot项目进行部署运行。
2024-07-31 11:54:23
409
原创 Java_Spring框架:StringUtils 之 hasText()和 hasLength()
判断字符串是否为null或空或空白(空格、Tab)判断字符串是否为null或空。
2024-07-31 09:54:33
646
原创 Nginx面试题
将服务器的地址信息对客户端屏蔽,客户端只需要访问代理服务器即可,代理服务器会将请求转发给底层的真正起作用的应用服务器。但在客户端眼里,服务器只有唯一的一台,就是代理服务器。Nginx可以作为负载均衡器,将流量分发到多个后端服务器。权重会影响请求被分发到该服务器的概率,权重越大,被分发请求的概率越大。项目中的静态资源,不会因项目运行而发生变化,所以可以缓存在Nginx本地,加快访问速度。
2024-07-22 15:23:35
575
原创 使用Dockerfile构建镜像
通过基础镜像centos:7,在该镜像中安装 jdk 和 tomcat 以后将其制作为一个新的镜像mscentos:7。
2024-07-18 14:01:32
409
原创 阿里云服务器使用Docker安装JDK 8
bin/bash : 进入命令,可使用 docker ps 查看 COMMAND。openjdk:8 镜像名:标签名 , 使用 docker images 查看。5、启动容器实例: docker start 容器id / 容器名。4、关闭容器实例:docker stop 容器id / 容器名。6、移除容器:docker rm 容器id / 容器名。3、查看启动过的容器实例: docker ps -a。2、查看已运行的容器实例: docker ps。–name java-8 容器名,自定义的。
2024-07-17 11:14:45
1665
原创 使用云服务器的Docker安装MySQL 5.7
v:挂载主机文件夹 /mydata/mysql/data 到 容器/var/lib/mysq 挂载点。-p 3307:3306:指定宿主机端口与容器端口映射关系。-d:后台运行mysql容器。-e:指定容器需要的变量。-it:表示交互式终端;
2024-07-17 11:01:59
586
原创 解决阿里云服务器安装docker时,报错“error pulling image configuration: download failed after attempts=6:xxxxx”
我的设备:
2024-07-17 09:30:00
514
原创 在不同环境中,Java应用程序和MySQL等是如何与Docker进行交互和操作的?
在本地开发环境中,可以使用Docker Compose来管理和运行Java应用程序容器和MySQL容器。通过这种方式,可以在不同环境中轻松启动和运行Java应用程序和MySQL,而无需担心环境差异。Java应用程序容器将连接到MySQL容器,并可以在本地开发和测试应用程序。完成开发后,使用Dockerfile构建Java应用程序的Docker映像,但不包含MySQL。然后使用docker build命令构建映像,并使用docker push命令将其推送到Docker注册表。
2024-07-16 17:43:49
854
原创 学RuoYi若依框架时忘记密码
遇到了一个比较尴尬的处境,新建了个账户,登上去后,想登录admin账户,但是不知道admin的密码,查看数据库的字段,发现是加密后的。搜索到结果后,觉得有必要记录一下。
2024-07-13 17:15:59
1893
原创 文件类:如何将excel文件转为csv文件(且保留时间格式)?
最近有个场景,在ftp服务器上,读取csv文件并入库,但是客户提供的一部分文件却是xls文件,就得搞个将excel转为csv文件的方法,话不多说直接开干。
2024-07-11 14:03:45
1098
原创 Java_MyBatis框架:MyBatis框架
MyBatis的执行流程先加载配置文件再通过SqlSessionFactoryBuilder创建SqlSessionFactory对象获取SqlSession生成代理对象执行Excutor匹配执行SQL语句MyBatis的一级缓存和二级缓存一级缓存:也叫SqlSession级缓存,无需手动开启,可直接使用,为每个SqlSession单独分配的缓存空间,多个SqlSession之间的缓存不共享。二级缓存:namespace级别缓存,即一个mapper一个缓存,相互独立互不影响,同一个n
2024-07-05 09:45:00
309
原创 Java_Spring框架:AOP
AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。AOP:面向切面编程。
2024-07-04 10:30:00
179
原创 Java_网络通信:http和https
HTTP: 是互联网上应用最为广泛的一种网络通信协议,基于TCP,可以使浏览器工作更为高效,减少网络传输。HTTPS: 是HTTP的加强版,可以认为是HTTP+SSL(Secure Socket Layer)。在HTTP的基础上增加了一系列的安全机制。一方面保证数据传输安全,另一位方面对访问者增加了验证机制。是目前现行架构下,最为安全的解决方案。
2024-07-04 09:00:00
326
原创 Java_Spring框架:Bean的生命周期
销毁(Destruction):当Bean不再被需要时,Spring会调用Bean的销毁方法进行资源释放和清理工作。Bean的销毁阶段只有在容器关闭时才会触发,或者在使用单例作用域的Bean时,当Bean不再被引用时被垃圾回收器回收。以上是Spring框架中Bean的典型生命周期阶段,每个阶段都提供了相应的扩展点,可以在不同阶段进行自定义操作。属性赋值(Population):在实例化后,Spring会通过依赖注入(Dependency Injection)或者属性赋值的方式,将Bean的属性值设置好。
2024-07-03 13:56:07
242
1
原创 Java_多线程:ThreadLocal
ThreadLocal,即线程本地变量。如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。ThreadLocalMap内部维护了Entry数组,每个Entry代表一个完整的对象,key是ThreadLocal本身,value是ThreadLocal的泛型值。弱引用:只要垃圾回收机制一运行,不管JVM的内存空间是否充足,都会回收该对象占用的内存。
2024-07-03 10:30:00
583
原创 Java_多线程:线程池
线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。
2024-07-02 18:32:53
2495
原创 Java_Java基础:int 和 Integer
非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)的(因为new生成的是两个对象,其。
2024-07-01 16:05:55
733
原创 Java_JVM:如何判断对象可以被回收?JVM的永久代中会发生垃圾回收么?
垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(FullGC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。请参考下Java8:从永久代到元数据区 (注:Java8中已经移除了永久代,新加了一个叫做元数据区的native内存区)
2024-06-30 10:00:00
209
原创 Java_Java基础:深拷贝、浅拷贝和引用拷贝
浅拷贝只复制了对象本身,不会复制对象内部的数据。深拷贝递归地复制了对象及其所有子对象的内容。引用拷贝是将一个对象的引用赋值给另一个变量,使得两个变量指向同一个对象。
2024-06-29 09:45:00
256
原创 Java_Java基础:HashCode详解
这种方式将集合分成若干个存储区域,每个对象可以计算出一个哈希码,可以将哈希码分组,每组分别对应某个存储区域,根据一个对象的哈希码就可以确定该对象应该存储的那个区域。在产生hash冲突时,两个不相等的对象就会有相同的 hashcode 值。集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理。果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;
2024-06-28 17:20:53
465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅