
java
这个程序媛有点冷
专注于冷门知识,为少数人提供捷径
展开
-
为什么ApplicationRunner都没有执行完成,浏览器就可以访问接口了
换句话说,Spring Boot的自动配置和容器初始化是非阻塞性的,一旦嵌入式服务器初始化完成并且端口被监听,Spring Boot就开始接收HTTP请求,而不需要等待所有的。但是,Spring Boot 启动过程是异步的,特别是当嵌入式容器(如 Tomcat)已经启动并准备好接受HTTP请求时,此时。中包含了关键的应用初始化逻辑,比如预热缓存、检查系统依赖或者数据库迁移等,你可能希望这些操作在应用开始接收HTTP请求前完成。中的代码尚未运行,HTTP端点可能也已经对外服务了。在Spring Boot中,原创 2023-11-13 14:22:20 · 690 阅读 · 0 评论 -
Gradle中如何修改Springboot引入的依赖版本
不知道各位是否遇到过以下问题:当下层项目将spring引入的某个依赖版本升级之后,上层项目只要指定了Springboot版本,那么还是会将这个版本改回去?原创 2022-12-23 18:26:04 · 2900 阅读 · 1 评论 -
Gradle解决:程序包 XXX 已在模块 XXX 中声明, 但该模块未导出它
项目中出现以下提示当存在上面这个报错时,在idea代码检查的时候就会标红:需要在setting中添加Java Compiler,这个可以通过提示添加,添加之后即可解决报错:在gradle中将jdk.charsets模块中的包sun.nio.cs.ext导出:}在以jar命令启动时,需要将将jdk.charsets模块中的包sun.nio.cs.ext导出:原创 2022-11-10 15:35:47 · 3828 阅读 · 1 评论 -
Gradle解决:程序包 XXX 已在模块 XXX 中声明, 但该模块不在模块图中
Gradle解决:程序包 XXX 已在模块 XXX 中声明, 但该模块不在模块图中原创 2022-11-10 15:31:43 · 1489 阅读 · 0 评论 -
gradle中compile等方式引入依赖的效果
虽然存在,但是它已经不被 Gradle 推荐使用,,Gradel 3.0 中已经声明compile 应该被 api 和 implementation 替换。指令完全等同于compile指令,当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用。其他模块依赖此模块时,此模块使用implementation声明的依赖包只限于模块内部使用,不允许其他模块使用。只在单元测试代码的编译以及最终打包测试apk时有效。只在编译时有效,不会参与打包。只在生成apk的时候参与打包,编译时不会参与,很少用转载 2022-07-13 10:14:53 · 2012 阅读 · 0 评论 -
SpringBoot动态添加数据源,动态修改查询数据库
项目支持的功能1. 该项目主要是使用了mybatis-plus中一个基于springboot的快速集成多数据源的启动器dynamic-datasource-spring-boot-starter,通过该组件,能够在application中轻松配置多个数据源2. 该项目还能在页面上动态增加,删除,或修改已有的数据源3. 该项目能在运行过程中修改注解@DS的属性值,动态修改查询的数据库项目源码地址:成都/ql-multidruiddynamic代码介绍1.通过dynamic-datasour原创 2022-04-15 16:38:27 · 3493 阅读 · 2 评论 -
Springboot多数据源开发
开发的多数据源需要满足以下需求:支持多数据源,同时支持clickhouse和mysql,使用mybatis连接clickhouse,使用jpa连接mysql源码地址:成都/ql-multiple-data-sources原创 2021-12-30 14:58:25 · 618 阅读 · 0 评论 -
Java如何深拷贝ConcurrentHashMap类型的值
关于这个问题,我在网上找了许多的答案,最常用的解决方式就是使用new一个新的ConcurrentHashMap对象,将需要拷贝的值放入放入新的对象中,比如下面这种情况 public static void clone1(){ ConcurrentHashMap<String, String> original = new ConcurrentHashMap<>(5); original.put("hello", "Salaam");原创 2021-04-19 15:42:50 · 1788 阅读 · 0 评论 -
Jar运行crash
错误描述我在使用java -jar 运行我们的jar项目过程中,出现C [ld-linux-x86-64.so.2+0x9d6d] do_lookup_x+0x6db的crash错误由于处于内网机中,完整的日志我就不展示了。我先说一下项目中大概是在什么地方会崩溃吧。由于项目中需要使用到C++开发的文件内容的加密和解密功能,因此就使用到他们的so库,每次被崩溃就发生在java调用本地so库的过程中。我们可以看看ld-linux-x86-64.so.2的作用是什么?这是网上原创 2021-04-15 11:03:18 · 331 阅读 · 0 评论 -
超详细的JVM虚拟机栈
作为一个资源整合工,我整合了网上对java虚拟机栈的大部分知识点,比较详细。由于我也不确定我查看和整合了网上哪些资源,因此在这里对这些大佬表示感谢。同时,文章也包含了我的许多个人理解,如有错误,欢迎指正。详细讲解虚拟机栈与程序计数器一样,Java 虚拟机栈(Java Virtual Machine Stacks)也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java 方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、原创 2022-01-14 16:01:31 · 692 阅读 · 0 评论 -
flume-ng-sdk不支持ipv6
当我使用flume-ng-sdk开发flume的客户端的时候,发现flume-ng-sdk并不支持ipv6格式的输入,那么我们应该如何解决呢,我们需要重写NettyAvroRpcClient这个类,在项目中建立一个与jar包中一模一样的文件路径的文件夹以及NettyAvroRpcClient类,修改这个类中configure方法对ip和端口的拆分的代码,按着自己的需求来拆分...原创 2021-04-02 09:17:55 · 253 阅读 · 0 评论 -
在Springboot中如何执行redis的config命令
最近想实现一个需求,如何使用Java执行redis的config命令呢?因为使用到spring-boot-starter-data-redis,最初我想到的是RedisTemplate.class,从中是否能找到实现的方法。但是结果是令人沮丧的,我并没有找到相关的实现方法。最后看源码,找到了它的实现方式:最重要的一点是需要从spring容器中将RedisConnectionFactory.class的bean取出来@Servicepublic class BaseServiceImp原创 2021-03-05 10:27:18 · 821 阅读 · 2 评论 -
(Gradle)多项目模块下,gradle如何获取子模块的git当前分支
最近就有个鬼需要,需要在对项目模块下,获取指定子模块的在git中的当前分支。先说一下多模块,我的这里以两个Springboot项目为例:ql-sample,ql-redis1. ql-sample就是入口程序2. ql-redis是一个子模块项目,关于连接redis的我在主程序ql-sample中通过settings.gradle//ql-sample和ql-redis处于同一目录下才可以这么用includeFlat 'ql-redis'这样就将 ql-redis引入进来了原创 2020-12-17 15:53:04 · 1628 阅读 · 3 评论 -
引入自己打包的jar,getimplementationversion返回为null
说一下使用场景,我引入自己打包的生成的jar包,想获取当前这个jar的版本号,出现返回为null的情况import com.ql.qlredis.controller.RedisController;public class TestVersion { public static void main(String[] args) { //RedisController是我定义的jar包中的类 System.out.println(RedisControlle原创 2020-12-17 10:49:54 · 1497 阅读 · 1 评论 -
如何使用docker搭建双节点集群(elasticsearch 7.9.2,kibana 7.9.2)(傻瓜式搭建)
需要使用docker-compose,没有的请安装docker-compose,下面正式开始搭建elasticsearch编写docker-composesudo vim elasticsearch-compose.yml填写内容,创建节点名称为es01,es02version: '3.3'services: es01: image: elasticsearch:7.9.2 container_name: es01 environment:原创 2020-10-21 19:31:42 · 1024 阅读 · 0 评论 -
spring后端控制层从前端获取json数据的几种方法
第一种:使用map设置一个登陆接口,前端传入账号和密码@RequestMapping("/login")public void login(@RequestBody Map<String, Object> params){ String userName = params.get("userName").toString; String password =...原创 2019-12-18 10:54:57 · 946 阅读 · 0 评论 -
java获取指定时间段的SVN日志
能搜索到这篇博客的,应该应该也是跟我碰到了一样的问题,如何获取svn的指定时间的段的日志信息,我获取这个信息是为了将其转化为系统的release notes(版本发行日志)。在此特别鸣谢简书的博主@刘同学lwq,好文章不能被埋没了,下附链接https://www.jianshu.com/p/deeb4cafbab2那么如何用java获取指定时间段的SVN日志呢?思路一:直接调...转载 2019-12-06 10:15:30 · 1223 阅读 · 0 评论 -
java对象初始化:不一样的执行顺序
我们都知道,java对象初始化的默认执行顺序如下:父类静态代码块,父类静态成员变量(同级,按代码顺序执行) 子类静态代码块,子类静态成员变量(同级,按代码顺序执行) 父类普通代码块,父类普通成员变量(同级,按代码顺序执行) 父类构造方法 子类普通代码块,子类普通成员变量(同级,按代码顺序执行) 子类构造方法有不按这个顺序执行的吗?当然有,为了让大家更好地理解,咱们可以看一下以下代码...原创 2019-08-30 11:26:26 · 230 阅读 · 0 评论 -
int,String,Integer
/* Integer可以使用equals方法* Integer和int的区别,Integer为了在各种类型间转化,通过各种方法的调用;<>需要类,用Integer* String定义的两个常量,如果定义的值相同,则指向的是同一个地址,除非是new了一个String对象,地址才不相同* ==比较的两个对象的地址**/...原创 2019-08-15 10:28:45 · 155 阅读 · 0 评论 -
Referenced file contains errors
解决.xmlReferenced file contains errors (project-aware://myssmdemo/org/springframework/context/config/spring-context-4.3.xsd). For more information, right click on the message in the Problems View a...原创 2018-09-29 19:03:58 · 751 阅读 · 1 评论 -
解决 Unable to create an instance of type [com.sun.faces.config.ConfigureListener]
声明:每个人的的电脑都会因为电脑环境,版本等因素不同,可能解决方法不通用,请大家多点耐心吧,毕竟是干这行的,开始学习的时候,我搭建SSM框架很多次,有问题无法解决就重头搭建,bug是有的,但总有一天能克服。 我遇到的问题Caused by: org.apache.catalina.LifecycleException: Failed to start component [Stand...原创 2018-10-18 16:22:32 · 3556 阅读 · 0 评论 -
Struts2框架搭建
最近搭建了Struts2框架,发现理解了之后还是挺简单的,也给新手做个向导吧一、Struts2有什么用?答:(个人理解)就是对需要访问的网页进行筛选。比如:你进入一个网站登录界面,输入账号密码,点击登录,这个按钮就会向后台返回一个信息,(举例)如果返回1代表成功,就跳转到成功后的界面(如进入首页),如果返回0代表失败,就跳转到失败后的界面(如重新输入密码界面)。仔细想想,这个功能该怎么实现...原创 2018-11-12 13:27:29 · 287 阅读 · 0 评论 -
Bootstrap简单实用(举例说明)
说一下配置环境首先如果使用在线版本的Bootstrap,你需要往你的jsp(不一定jsp,写网页的都可以)代码中导入这3个连接 导入如下<!-- 新 Bootstrap 核心 CSS 文件 --><link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min...原创 2018-11-18 12:29:10 · 274 阅读 · 0 评论 -
struts2中@Action注解出现“未对注释类型 Action 定义属性 value”或“未对注释类型 Action 定义属性 value”
直接上问题我的问题是注解里面不能使用value属性鼠标放在value上,出现“未对注释类型 Action 定义属性 value”一般出现这个情况是包导入错误应该导入以下包import org.apache.struts2.convention.annotation.Action;导入后就OK了...原创 2018-12-12 19:10:38 · 805 阅读 · 0 评论 -
SSH框架中struts2标签在s:iterator标签下使用s:select标签
下面放几段代码实体类中@Entity //实体@Table(name="zl_user")public class Personinfo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="UserID") private int id; @Column(name="Name")...原创 2018-12-19 17:57:57 · 1107 阅读 · 0 评论 -
hibernate乐观锁 StaleObjectStateException
你是否出现这个ERROR SqlExceptionHelper Cannot add or update a child row: a foreign key constraint fails (`car_rental`.`zl_license`, CONSTRAINT `FK_Reference_9` FOREIGN KEY (`UserID`) REFERENCES `zl_user` ...原创 2018-12-28 00:24:16 · 646 阅读 · 0 评论 -
SSH框架实现图片上传
第一步,先写上传的jsp页面upload.jsp,注意:一定要在form里面加enctype="multipart/form-data"<!--在开头加上这个,以防万一--><%@taglib prefix="s" uri="/struts-tags"%><form name="frm" method="post" actio原创 2018-12-31 01:58:54 · 1545 阅读 · 0 评论 -
html中如何让两个按钮并列显示(中间紧密连接在一起,不会出现空格)
这个实现很简单,使用ul-li或者table-tr把按钮包含进去就行了原创 2018-12-23 13:36:25 · 18375 阅读 · 0 评论 -
SSH框架对MySQL进行级联删除(只要你安装了navicat是最简单的)
相信搜索SSH框架的级联删除的,最初想法是怎么用代码实现级联吧,现在有个更简单的方法,只要你安装了Navicat(其他类似软件可能也行,不过我没试过) 首先说一下数据库表之间的关系,用过powerdesiger的应该知道这个是什么意思不懂也没关系,一个是驾照认证信息表,一个是用户信息表,用户信息表的主键UserID是驾照认证信息表的外键。我要实现的是删除用户的同时,删除...原创 2018-12-31 01:45:44 · 948 阅读 · 2 评论 -
项目开发注意事项
针对网页开发1.文件命名规范,如何取名,如代码文件如何命名,单词之间是否进行分隔,举例:root-index.jsp,root代表管理员端代码文件,index代表首页2.页面字体规范,确定页面普通内容字体的大小,颜色等规格3.规定好项目进度,各段时间应该完成什么,没完成又该怎么办4.页面最好一个人写,且这个人有一定的美术功底5.form提交表单的时候,action中最好带有所调...原创 2019-01-13 14:09:52 · 669 阅读 · 0 评论 -
MYSQL数据库笔记
二.MYSQL数据库1. 数据库系统组成:数据库、数据库管理系统(DBMS)、应用系统和数据库管理员(18.3.10)2. 数据库的基本知识DML(data manipulationlanguage): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL比DML要多,主要的命令有CREATE、AL...原创 2019-02-28 21:51:31 · 235 阅读 · 0 评论 -
Java基础之继承
什么是继承?多个类存在相同的属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只需要继承那个类即可。注释:多个类称为子类,一个类称为父类、超类和基类。继承语法class 子类名 extends 父类名{ ……}继承的特点1.Java只支持单继承,不支持多继承(一个类只能有一个父类,不可能有多个父类)2...原创 2019-04-13 14:24:35 · 274 阅读 · 0 评论 -
Java基础之抽象和接口
抽象在Java继承中,抽象类和普通继承关系中的父类作用基本相同,但是却在一般父类的基础上添加了一些限制:抽象类不能被实例化,即不能被new对象,其子类只有实现了抽象类中的抽象方法才能被实例化;如果抽象类中没有抽象方法,则可以直接实例化 抽象类除了包含一般方法,变量,常量,同时自身还包含抽象方法 抽象类的子类必须实现抽象类中的所有抽象方法,除非它自己也声明为抽象类,但是这样做,子类则不能...原创 2019-04-13 17:42:46 · 163 阅读 · 0 评论 -
eclipse卸载自带maven插件
打开eclipse的help菜单,选择install new software项。2、在弹出的窗口中选择what is already installed,就会弹出所有安装的插件,选择maven,点击uninstall,卸载后重启eclipse即可。我的是卸载圈中的这两个...原创 2019-05-22 23:10:53 · 958 阅读 · 0 评论 -
Windows10、Windows7中java环境配置
Windows10的java环境配置在系统变量中新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径) 编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin” Windows7的java环境配置在系统变量中先新建一个系统变量JAV...原创 2018-09-16 22:17:23 · 312 阅读 · 0 评论