
java
文章平均质量分 77
孟秋与你
懂点spring,懂点儿调优,会写点与众不同的java工具类,能写点简单的脚本语言,发布过idea小插件,套模板写过vue,python,写过套壳网页安卓apk,部署过自己项目的伪全栈
展开
-
【shardingjdbc】sharding-jdbc分库分表入门demo及原理分析
由一个分库案例 引发的思考原创 2023-11-14 12:27:23 · 882 阅读 · 0 评论 -
【java】java sftp访问文件夹,java smb访问共享文件夹 按时间过滤查找文件 集成springboot
本文介绍了java中如何进行sftp传输及smb传输访问共享文件夹 ,复制代码前 请先认真看注意事项。原创 2023-02-21 17:20:13 · 3346 阅读 · 2 评论 -
【springboot】 通过jdk8特性 优雅的写入日志(非常推荐) 解决@valid失效问题
valid 可以帮助我们节省很多代码 比较方便 但操作失误时 可能会失效 达不到我们预期效果;@valid会有个问题 因为注解过于方便 反而会导致拦截后 错误日志的收集会比较麻烦 ,以及在面对有时需要拦截 有时不需要拦截的特定场景下 显得无计可施 此时我们还是要回归手写校验本文将从解决@valid失效问题 及提供更灵活的方案两个方面进行简述。原创 2022-12-26 11:44:35 · 3510 阅读 · 0 评论 -
【redisTemplate】redisTemplate操作小结 redis获取指定前缀的key
hash和list,除了特定的业务应用场景,它们有一个共同特点,可以将key做成类似数据库里面table的形式。如下图 AREA就类似于一张表,里面包含所有地区的key和value,这么设计有利于我们观察、维护redis的数据,地区的key不会平铺在最外层。题外话,不知道刚接触redis的同学会不会弄不清楚五大格式,感到很迷惑,我记得几年前自己刚接触的时候就会犯迷糊。,比如上面图中,我们的value是hash格式的,理解了这点后,其它几种格式的数据 也知道怎么操作了。原创 2022-12-14 11:08:45 · 5056 阅读 · 3 评论 -
【security】spring security放行不生效,security放行后还是被拦截,路径变成了/error,security匿名用户无法访问
文章目录security最初的配置初步改进后的配置排查真实原因更加合理的配置之前写了篇关于security认证的文章 感觉对security了解多了一点,直到遇到过滤器层面的问题,才明白security终究还是那个复杂的security。security最初的配置@Configurationpublic class SecuritySecureConfig extends WebSecurityConfigurerAdapter { @Override protected voi原创 2022-05-13 17:20:41 · 21806 阅读 · 0 评论 -
java 枚举类 switch不进case 记一次部署时的坑
最近在部署项目时,采用替换class文件形式 ,新增一个枚举字段 case节点 linux生产上发现不进case,本地windows是正常的,刚好枚举类字段是65个 网上查资料 推荐枚举推荐不超过64个,导致被误导,误以为字段个数过多会有不一样的编译或者在linux环境上 编译会有什么不一样的地方。替换的class文件假设叫xxx.class 发现同目录下有xxx$1.class文件,当时看了一眼 以为是动态代理生成的文件 也没在意。解决问题:第一想法是switch string字段名 想到swit原创 2021-04-26 19:04:10 · 833 阅读 · 0 评论 -
【springboot】@EnableWebMvc注解有什么用?导致@RestController不返回json default-property-inclusion: non_null不起作用?
相信有比较多的一部分开发同行思维都是这样,没必要画流程图,懒得画,业务理清了就好。当然,如果说开发年限很长了,经验老道,业务熟练,那画不画都无所谓了。如果对于初中级开发人员,或者针对复杂的业务,个人觉得业务流程图是有必要的。其一:开发之前,业务可能理清楚了,但是开发进行到后期,很可能脑子就开始混乱,业务条理开始不清晰其二: 只有亲自画流程图,当自己流程图出现不规范的时候,并且想着怎么优化流程图的时候,才知道业务逻辑可以被优化。流程图可以说是我们思维的形象化,流程图不规范,说明我们的逻辑很可能不是最优原创 2021-04-09 11:51:44 · 4227 阅读 · 0 评论 -
【spring】Spring事务失效分析,事务回滚失败原因,事务的传播机制
1.第一种情况 :调用方加上@Transactional 注解,被调用方未加上注解 (同一个service类)Exp:@Transactionalvoid methodA(){// insert table1methodB(Object obj);}void methodB(){// insert table2}结论:methodB()出现异常,抛给methodA,A中捕获到异常,进行回滚处理,table1,table2都未插入2.第二种情况:调用方未加上注解,被调用方加上注解(同原创 2021-01-07 15:41:30 · 5289 阅读 · 6 评论 -
【stream流】jdk8特性 list stream流操作合集,optional操作合集
jdk抢先版都出到23了 , jdk8的stream流用法 熟悉了嘛?原创 2021-01-04 14:30:05 · 3090 阅读 · 0 评论 -
java修改对象属性值工具类,两个对象信息互换工具类
一、修改对象属性效果:/** * Description: * date: 2020/11/26 * 修改对象的属性 更新信息工具类 * @param : tClass 实体类class * @param : fieldName 实体类属性名 * @param : values 修改的内容 * @return : 失败返回hashMap格式;成功返回实体类 * @author: qkj */ publi原创 2020-11-27 15:36:38 · 2549 阅读 · 1 评论 -
java如何判断两个Object类型是否相同?
第一时间我们都会想到instanceof 但是instanceof是必须要已知一个类型,例如People p = new People; p instanceof People;这时我们可以通过反射来判断: public static Object exchangeEntityInfo(Object object1,Object object2 ,Object... param) throws Exception { Class aClass1 = object1.getClas原创 2020-11-27 11:27:33 · 3641 阅读 · 0 评论 -
@RequestParam,@PathVariable和@Param的区别?
一、@PathVariable代码部分为了方便观察 ,特地将@PathVariable注解里面的名字和参数名不一致即@PathVariable(“id”) String test, @PathVariable(“name”) String test1而不是@PathVariable(“id”) String id, @PathVariable(“name”) String namepostman测试输出结果: aa—bb通过结果可以看出, 当@PathVariable注解声明了值(“原创 2020-11-23 14:49:49 · 928 阅读 · 0 评论 -
【swing】标签Jlable、JTextField文本框怎么设置不同的字体颜色?
冷知识,setText(" ")里面可以写html语言 想怎么设置颜色就怎么设置; jlable.setText("<html><font color='green'>编号:</font><font color='red'>" + 01 + "</font> <font color='green'>时间: </font><font color='red'>" + 12:00 + "</fo原创 2020-11-09 10:50:33 · 1422 阅读 · 0 评论 -
java tomcat动态加载配置文件,jvm三大内置类加载器
String key= ""; Properties prop = new Properties(); try { // 相对路径+properties名 // org.springframework.core.io.support 包下的PropertiesLoaderUtils prop = PropertiesLoaderUtils.loadAllProperties("relative/xxx.pr...原创 2020-11-02 14:04:18 · 514 阅读 · 0 评论 -
【idea】idea教程 小技巧总结 idea有哪些强大的功能 总有一个你能用上
注意: 不同idea版本 菜单、目录可能有细微差别,自己稍加分析都能找到1.查看代码历史版本鼠标在需要查看的java类 右键 找到Local History >> Show History 点开即可看到历史版本,常用于自己忘记代码改了哪些内容 或需要恢复至某个版本2. 调整idea的虚拟内存:尽管本质都是去改变 .vmoptions配置文件,但推荐使用Change Memory Settings去调整,选择Edit Custom VM Options 或者在本地磁盘目录更改,很可能造成原创 2020-10-22 11:00:02 · 11486 阅读 · 8 评论 -
swing addItemListener监听事件调用两次,itemStateChanged执行两次
下拉框状态改变有两个步骤:旧选项由选中变成未选中,新选项由未选中变成选中,所以会执行两次;解决方法1:@Override public void itemStateChanged(ItemEvent e) { // 只在新选项选中时执行 if(e.getStateChange()==ItemEvent.SELECTED){ }}解决方法2:JComboBox jc = new JComboBox();// 改用addActionListener监听原创 2020-10-13 17:52:52 · 1214 阅读 · 2 评论 -
【设计模式】工厂模式的作用?工厂模式有什么优点?
注:例子根据菜鸟案例进行更生动的改编,并加以自己的理解创建一个People接口public interface People { void makeMoney();}实现了People接口的大儿子类public class FirstSon implements People { @Override public void makeMoney() { System.out.println("大儿子在赚钱。。"); }}同样实现了Pe原创 2020-10-12 14:11:21 · 1108 阅读 · 0 评论 -
【java基础】finally和return的执行顺序,真的理解对了吗?
初学java的时候 大家应该还记得有一句话:最终都会执行finally; 那么时间久了 真正的执行顺序,真的还记得吗?首先看看csdn中某一篇点击量 赞评都很高的结论,是否发现问题? 同时也反应一个问题 这些基础带细节性的东西,真的很容易被忽略=分割线==================================例子1:public class Demo { public static void main(String[] args) { int a = 0;原创 2020-10-10 16:14:39 · 477 阅读 · 1 评论 -
怎么让JDialog置于顶层,怎么把JDialog设置成模态框,怎么让JDialog居中显示,点击JDialog弹窗外自动关闭
JDialog jDialog = new JDialog(); // 置顶显示 jDialog.setAlwaysOnTop(true); // 设为模态 jDialog.setModal(true); // 居中显示 jDialog.setLocationRelativeTo(null); // 焦点监听 失去关闭(即点击窗口外 关闭JDialog) jDialog.addWindowFocusListener(new WindowFocusListener() {原创 2020-10-08 15:10:11 · 2314 阅读 · 1 评论 -
【java集合】List<Map> 把不同map相同的key值进行累加
复杂度: O(n2)import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Test { public static void main(String[] args){ List<Map<String,Object>> list1 = new ArrayList<Map<Str原创 2020-07-21 14:04:16 · 5393 阅读 · 1 评论 -
【spring】spring基础笔记以及面试知识点
ioc控制反转:Inverse of Control 反转控制的概念,就是将原本在程序中手动创建对象的控制权,交由Spring框架管理,简单说,就是创建对象控制权被反转到了Spring框架例子:<bean id = "userService" class="com.demo.spring.UserServiceImpl"> </bean>DI解释Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件原创 2020-06-01 19:02:47 · 191 阅读 · 0 评论 -
sql update失效?hibernate get方法获取的数据不对?
1.首先检查事务隔离级别是否有问题 如果事务都检查过了2. 我遇到的是hibernate + 存储过程 , 其实和事务不可重复读情况很类似,但是是因为 先执行了存储过程,并且是正常update, 但是紧接着又调用另一个service 是使用hibernate先get(id)查询了存储过程改的那张表数据,此时获取的数据就不对了 是update之前的数据,hibernate查询的是上一个session,也就是缓存,然后再用hibernate update了一遍,把旧数据又存进去了。3. 解决方法 :(1原创 2020-05-28 19:16:27 · 328 阅读 · 0 评论 -
【JVM浅析】大白话解释 JVM五大内存区域 新生代 老年代 永久代和堆的关系?常量池在哪里?本地方法栈是用来干嘛的?
五大内存区域:堆、栈、方法区、本地方法栈、程序计数器1.堆:用来存放类对象 成员变量的地方,线程共享。简单来说 例如:new People() 这个对象 就放在堆里面。2.栈:与堆相对应的,存放局部变量,基本类型变量区,对象引用 ,执行环境上下文;线程不共享。3.方法区:又叫静态存储区,存放class文件和静态数据,线程共享; 常量池在方法区里面。4.本地方法栈:和方法区不同!:native方法 即通过JNI (jna.jar包) 调用dll的方法,线程私有,是一个后入先出栈,本地方法栈会抛出原创 2020-05-15 18:49:21 · 756 阅读 · 0 评论 -
idea启动web项目失败,Error during artifact deployment,Web Application:exploded没有from modules,看完别再说启动项目失败
基于非maven项目 ,如果maven项目 :pom.xml build 节点加上 src/main/resources /*.properties /.xml **/.tld false src/main/java /*.properties /.xml **/.tld false 1.首先检查tomcat底下有没有包 ,先把原来的删除2.点击 + 把web添加(因为没有添加web 所以不被当作web项目 自然没有from modules)(如果只是缺少这一步 很可能造成的结果原创 2020-05-15 14:28:28 · 1613 阅读 · 1 评论 -
java指令打印 驱动打印总结 打印不需要手动选择打印机 愿你编码半生 都不会用到
前言:1、需要少量硬件知识 需要懂IO流2、作为总结 内容有点多3、打印机分为串口打印、网口打印、并口打印等,一般情况 只有指令打印才需要去区分,而驱动打印的话 ,只需要知道打印机名字就好了 Printable+awt+javax.print4、一般情况 热敏打印机 驱动和指令两种打印方式 速度基本差不多 因为都很快 ;而老旧的针式打印机 驱动打印会特别慢,或者热敏打印 但不适合装驱动时 ...原创 2020-04-28 15:05:32 · 1449 阅读 · 0 评论 -
exe4j 程序在别的电脑报错Please reinstall or define EXE4J_JAVA_HOME to point to an installed 32-bit JDK or JRE
1.根据计算机环境 32位不用勾选,64则勾上2.勾上,别问为什么3.重点解释: 这是添加程序的jre运行环境,exe4j默认是会去找环境变量/注册表的,(图中没有 被我删了),这也是为什么程序在我们本地能运行,因为java程序员都会配置环境变量,但是在生产环境,用户电脑不会去安装jdk,有时我们就会连同jre一起放在程序安装目录,添加这个目录的含义为:找到exe程序同级目录下的jre目录,把...原创 2020-04-05 19:44:46 · 3381 阅读 · 0 评论 -
svn Cleanup failed to process the following paths xxxxxx拒绝访问 傻瓜式教学 超简单
1.找到.svn 文件夹(是个隐藏文件夹 计算机需要设置 显示隐藏文件夹),点击进去2.下载一个sqlite3 放在.svn目录下,在地址栏输入cmd 按下回车3.输入sqlite3 wc.db 回车4. 输入 .table 回车5. delete from wc_lock 回车delete from work_queue 回车 如果这时clean up 还出现xxx...原创 2020-03-31 10:55:12 · 2403 阅读 · 0 评论 -
【文艺复兴之swing】swing怎么做密码框?swing怎么锁定程序 输入密码才能解锁?
第一种:大概思路代码 while (true) { try { do { JPasswordField passwd = new JPasswordField(16); J...原创 2020-03-28 17:55:56 · 474 阅读 · 0 评论 -
【文艺复兴之swing】JOptionPane.showConfirmDialog设置字体大小
swing在如今 虽然不常见了,但消息提示框依然很实用,有的时候给用户提示,或者做个简单的页面都是非常简便的。Font font = new Font(“name”,0,15);UIManager.put(“OptionPane.font”, font);UIManager.put(“OptionPane.messageFont”, font);UIManager.put(“OptionP...原创 2020-03-28 17:46:05 · 1395 阅读 · 0 评论 -
java 网址/字符串 转二维码
String content = "www.baidu.com"; // 需要try catch BitMatrix byteMatrix = new MultiFormatWriter().encode(new String(content.getBytes(), "iso-8859-1"), BarcodeFormat.QR_CODE, 175, 17...原创 2020-01-17 10:17:15 · 432 阅读 · 0 评论 -
java和python 分别爬网页源码?
// 这是java 用Jsoup 解析网页源码import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;impor...原创 2020-01-16 11:34:47 · 202 阅读 · 0 评论 -
java web项目最简单的配置文件取值方法 不再惧怕写配置文件
// 常用于客户端的配置文件 : 例如swing程序 打包成jar包后再打包成exe, src目录就读取不到了 这时需要读取该程序所在的绝对路径 public Map getXXX() { InputStream is = null; try { // 核心代码 is = new FileInputStream...原创 2020-01-15 10:29:35 · 248 阅读 · 0 评论 -
【文艺复兴之swing】java代码控制打印机打印 不会弹出打印机选择框(swing)
public static void main(String[] args) { Printable printable = new Printable() { public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException...原创 2020-01-15 10:21:03 · 1179 阅读 · 0 评论 -
为什么if条件不成立 还会执行if里面的内容?
来自灵魂的拷问,以前听段子说找半天bug 最后发现是一个标点符号,我就笑笑 你多个符号编译器不报错吗?直到在if(xxx)后面多了个分号…if( ! name.equals’xxx") ;{}...原创 2019-12-18 19:55:49 · 6749 阅读 · 6 评论 -
maven ssm 项目404, 但是idea tomcat无法访问?spring-*.xml cannot be opened because not exist ? idea导入maven项目
前几天导入别人的maven项目 想看一看,结果一直报404是怎么回事呢?导入maven项目方法:接下来注意 有一步的右下角 environment setting, 保证自己的maven setting.xml文件和本地仓库路径没问题就好了。导入成功后,观察java和resource文件夹是否为资源文件夹 静态资源文件夹确保自己的web.xml没问题。pom.xml build...原创 2019-10-29 10:04:25 · 336 阅读 · 0 评论 -
SSM框架出现 'xxxServiceImpl': Unsatisfied dependency expressed through field 'xxxMapper'
出现这类错误,一般是spring自动创建bean失败,需要从以下几个方面检查:( 基于注解)注解扫描器 是否开启<context:component-scan base-package=“com.dwork”> 作用是扫描com.dwork下面所有的注解<context:exclude-filter type=“annotation” expression=“org.s...原创 2019-08-15 19:53:01 · 6154 阅读 · 4 评论