
JAVA
文章平均质量分 63
kfepiza
这个作者很懒,什么都没留下…
展开
-
Spring的 init-method, @PostConstruct, InitializingBean 对比
这是 JSR - 250 规范定义的注解,需要在 Bean 的方法上添加该注解,此方法就会在 Bean 实例化之后执行。该注解具有较好的可移植性,因为它是 JSR - 250 规范的一部分,在其他支持该规范的容器中也可以使用。都用于在 Bean 实例化之后执行初始化操作,但它们的使用方式、实现机制和应用场景存在差异,下面为你详细对比。都是用来实现 Bean 的初始化逻辑的,但它们的实现方式和适用场景有所不同。综上所述,这三种方式各有优缺点,你可以根据具体的项目需求和场景来选择合适的初始化方式。原创 2025-04-01 03:16:04 · 1051 阅读 · 0 评论 -
Spring的 @Conditional @ConditionalOnProperty 注解 笔记250330
Spring 的 与 注解详解在 Spring 框架中, 和 是用于动态控制 Bean 注册的重要注解。虽然它们都服务于条件化配置,但定位和使用场景有所不同。以下是两者的对比与深度解析: 1. :通用条件控制 核心机制 代码示例 关键特点 2. :基于属性的条件控制 核心机制 代码示例 关键特点 3. 对比与选择 4. 组合使用与进阶技巧 场景 1:原创 2025-03-30 16:14:02 · 697 阅读 · 0 评论 -
Mybatis的缓存机制 笔记250321
MyBatis 的缓存机制分为一级缓存和二级缓存,旨在减少数据库查询次数,提高性能。以下是详细的机制说明: 一、一级缓存(Local Cache)作用范围缓存失效条件实现原理注意事项 二、二级缓存(Second Level Cache)作用范围配置方式实体类要求:若需缓存对象,对应的 Java 类必须实现 接口。缓存失效条件工作机制注意事项 三、缓存控制禁用缓存强制刷新 四、第三方缓存整合MyBatis 支持通过实现 接口扩展缓存:常用实现配置示例(以 Redis原创 2025-03-20 16:06:37 · 629 阅读 · 0 评论 -
MyBatis 的缓存机制 笔记250320
MyBatis 的缓存机制分为一级缓存和二级缓存,旨在减少数据库查询次数,提高性能。以下是详细的机制说明:作用范围缓存失效条件实现原理注意事项作用范围配置方式实体类要求:若需缓存对象,对应的 Java 类必须实现 接口。缓存失效条件工作机制注意事项禁用缓存强制刷新MyBatis 支持通过实现 接口扩展缓存:常用实现配置示例(以 Redis 为例):五、总结特性一级缓存二级缓存作用范围SqlSession 内Mapper 跨 SqlSession默认开原创 2025-03-20 15:50:37 · 388 阅读 · 0 评论 -
Java使用JDBC连接操作Sqlite 笔记250314
以下是使用 Java JDBC 连接和操作 SQLite 数据库的详细步骤: 1. 添加 SQLite JDBC 驱动在项目中引入 SQLite JDBC 驱动依赖。 2. 连接数据库 3. 创建表 4. 基本 CRUD 操作 插入数据 (Insert) 查询数据 (Select) 更新数据 (Update) 删除数据 (Delete) 5. 事务管理 6. 完整示例 关键注意事项如有具体问题,欢迎继续提问!在Java中使用JDBC连接和操作SQLite数据库是一个常见的原创 2025-03-14 04:37:56 · 1203 阅读 · 0 评论 -
Java的LinkedHashmap设置值取值 与 类的成员变量反射的设置值和取值 的速度对比 笔记250303
反射方面,通过反射访问或修改类的成员变量,尤其是私有变量,涉及到了Java的反射机制。反射方面,通过反射访问或修改类的成员变量,尤其是私有变量,涉及到了Java的反射机制。虽然反射提供了极大的灵活性,但它在性能上通常比直接访问成员变量要慢得多,因为反射涉及到类型检查、安全权限检查以及方法调用的额外开销。设置值与取值的速度和类的成员变量反射的设置值与取值速度的对比,由于具体速度会受到多种因素的影响,包括JVM的实现、硬件环境等,因此无法给出一个绝对准确的对比结果。但是,这种灵活性是以牺牲性能为代价的。原创 2025-03-03 05:12:35 · 998 阅读 · 0 评论 -
Java的动态代理
Java动态代理是Java提供的一种代理机制,允许在运行时动态生成代理类并为接口创建代理对象[@1@][@3@]。这种代理类能够拦截接口方法的调用,并在调用过程中添加自定义逻辑。Java的动态代理提供了一种灵活的方式来创建代理对象,并且可以在不修改原有代码的基础上扩展或改变行为。虽然JDK原生支持的动态代理只能对接口进行代理,但结合CGLIB等第三方库,我们可以构建出更加健壮和灵活的应用程序架构。无论是开发新的应用还是优化现有系统,理解并掌握动态代理的概念和技术都是非常有价值的。原创 2025-02-25 11:01:37 · 971 阅读 · 0 评论 -
用xml配置spring, bean标签有哪些属性?
指定Bean是否为抽象类。抽象Bean本身不会被实例化,只能用作父类。原创 2025-02-15 22:39:54 · 501 阅读 · 0 评论 -
Spring的Bean的生命周期 笔记250206
Spring Bean的生命周期可以分为多个阶段,从Bean的定义加载到最终的销毁,每个阶段都有特定的回调和方法执行。以下是详细的步骤说明: 1. Bean定义加载与解析 2. Bean实例化(Instantiation) 3. 属性注入(Population of Properties) 4. Aware接口回调在属性注入后,Spring会调用一系列接口,向Bean注入容器的基础设施对象: 5. BeanPostProcessor前置处理 6. 初始化阶段(Initialization) 7.原创 2025-02-06 10:18:27 · 721 阅读 · 0 评论 -
Spring的AOP的JoinPoint和ProceedingJoinPoint
提供了一种强大的方式来控制和增强目标方法的行为,适用于需要精确控制方法执行流程的场景。与JoinPoint相比,它的主要优势在于能够通过proceed()方法显式地触发目标方法的执行,并能灵活地处理方法的参数和返回值。这使得它成为实现复杂切面逻辑的理想选择,如性能监控、事务管理和缓存等。在Spring框架的面向切面编程(AOP)中,是一个关键的接口,它扩展了JoinPoint接口,并提供了控制目标方法执行流程的能力。以下是关于代表了一个正在执行的连接点,即目标方法执行时的特定点。原创 2025-01-31 00:44:42 · 1394 阅读 · 0 评论 -
Springboot如何使用面向切面编程AOP?
切面类是一个用@Aspect注解标记的类,它包含了切点(pointcut)和通知(advice)。切点:定义了哪些方法将被拦截。通知:定义了拦截到方法时要执行的操作。@Aspect@Component// 定义一个切点,匹配所有com.example.service包下的所有方法// 这是一个空方法,仅用于定义切点表达式// 在方法执行之前执行// 在方法执行之后执行(无论是否抛出异常)// 在方法执行之后执行(仅当方法正常返回时)// 在方法抛出异常时执行。原创 2025-01-30 19:22:18 · 988 阅读 · 0 评论 -
Springboot使用AOP时,需不需要引入AspectJ?
在Spring Boot中使用AOP时,是否需要引入AspectJ取决于你选择的具体AOP实现方式。在pom.xml(Maven)或</</</Spring AOP会通过动态代理(JDK动态代理或CGLIB)拦截调用createUser</</</</</</</</</</</</</</</</</</</</</</</</</</即使直接通过new在 Spring Boot 应用中使用面向切面编程(AOP)并不强制要求引入 AspectJ,因为 Spring AOP 已经能够满足大多数的应用场景。原创 2025-01-30 19:02:41 · 1355 阅读 · 0 评论 -
Java的StackWalker类
Java 中的类(自 Java 9 引入)提供了一种高效且灵活的方式来访问堆栈跟踪信息。支持通过Option枚举配置行为,例如保留类引用或显示隐藏帧(如 Lambda 表达式生成的帧)。结合 Stream API 过滤或查找特定帧。通过可以获取方法名、类名、行号等详细信息。Optionwalk():在日志中自动记录调用来源。:验证调用链是否符合权限要求。:动态分析程序执行路径。提供了更高效、灵活的方式来访问堆栈跟踪,适用于需要精细控制堆栈信息的场景。通过结合Option。原创 2025-01-30 18:32:29 · 680 阅读 · 0 评论 -
@Inject @Qualifier @Named
/ 实现类 1@Override// 实现类 2@Override@Qualifier。原创 2025-01-30 18:24:15 · 955 阅读 · 0 评论 -
引入@Inject的依赖包
在 Maven 项目中引入@Inject注解所需的依赖包取决于你所选择的依赖注入框架。确保你添加了正确的框架依赖,并根据需要配置了其他相关的依赖。如果你不确定需要哪些依赖,请查阅所选框架的官方文档。在大多数情况下,只需添加框架的主要依赖(如 Guice 或 Spring Context),@Inject注解就会可用。@Inject。原创 2025-01-30 18:14:35 · 750 阅读 · 0 评论 -
用 java.security.MessageDigest 生成 md5,sha1,sha256,sha512 到文本文件
使用生成 MD5、SHA-1、SHA-256 和 SHA-512 哈希值,并将这些哈希值写入文本文件,你可以按照以下步骤进行。原创 2024-11-14 19:43:29 · 414 阅读 · 0 评论 -
Spring的核心类: BeanFactory, ApplicationContext 笔记241103
ApplicationContext是BeanFactory的子接口,提供了更多面向应用的功能,如国际化支持、资源访问、事件传播等。原创 2024-11-03 02:59:50 · 986 阅读 · 0 评论 -
Android的SQLiteOpenHelper类 笔记241027
SQLiteOpenHelper是Android开发中用于管理SQLite数据库的一个非常重要的工具类。原创 2024-10-29 20:15:22 · 1606 阅读 · 0 评论 -
IntelliJ IDEA 查看类class的结构Structure轮廓outline窗口, 快捷键是Alt+7
IntelliJ IDEA 查看类class的结构Structure轮廓outline窗口, 快捷键是Alt+7idea的窗口相当于Eclipse的outline快捷键是:Alt+7或者点击左上角主菜单面包屑,打开主菜单然后菜单找到-视图(View)→ 工具窗口(Tool Windows)→ 结构(Structure)原创 2024-10-27 16:46:23 · 401 阅读 · 0 评论 -
Java停止一个线程 笔记241026
通过设置一个共享变量(标志位)来通知线程停止运行。原创 2024-10-26 09:03:42 · 873 阅读 · 0 评论 -
如何将 java.nio.ByteBuffer 转为 String
方法 和 ByteBuffer的。原创 2024-09-18 02:10:44 · 1016 阅读 · 0 评论 -
java.nio.ByteBuffer的 capacity, limit, position, mark
这四个属性定义在ByteBuffer的父类 java.nio.Buffer中。mark()方法不是返回mark属性的值, 而是设置。ByteBuffer的两个静态工厂方法。原创 2024-09-17 23:42:48 · 1406 阅读 · 0 评论 -
JLabel设置字体大小颜色背景色
JLabel设置字体家族样式大小要创建并设置新Font。原创 2024-09-09 04:26:31 · 620 阅读 · 0 评论 -
ConcurrentHashMap和CAS的关系
由于CAS操作只适用于简单的变量更新,并且当多个线程同时执行CAS操作时可能导致CPU资源浪费(因为只有一个线程的操作会成功,其他线程需要重新尝试),因此ConcurrentHashMap在实现线程安全性时还结合了其他机制,如synchronized锁、分段锁(在JDK 1.7及之前版本中)等。:在某些处理器上,尤其是在支持虚拟化的环境中,CPU可能会在执行CAS指令时发生异常中断,这时CAS操作会被打断,可能导致后续的操作依赖于中断前的旧状态,从而导致失败。(Compare-and-Swap)操作。原创 2024-07-25 23:38:29 · 1033 阅读 · 0 评论 -
给JTextArea添加右键菜单
public class 右键菜单JTextArea2405250252 extends JTextArea{原创 2024-05-25 03:11:32 · 488 阅读 · 0 评论 -
JScrollPane包裹JTextArea2405240055
JScrollPane添加JTextArea可以在构造方法,也可以用 setViewportView( 方法。fontCfg.put(TextAttribute.FAMILY, “宋体”);原创 2024-05-24 03:22:40 · 697 阅读 · 0 评论 -
Java用反射reflect来实例化对象: class.getDeclaredConstructor().newInstance()
Java用反射reflect来实例化对象:从java9开始,已过时, 被加上强烈反对注解现用类名.class。原创 2024-05-24 02:24:56 · 389 阅读 · 0 评论 -
Java正则表达式之Pattern的flag
Java正则表达式中的Pattern类提供了一些标志(flag)来修改正则表达式的行为。当编译正则表达式时,你可以使用一组标志(flags)来修改正则表达式的行为。Java正则表达式中的Pattern类用于表示编译后的正则表达式,而flag则是在编译正则表达式时使用的选项。这些标志可以单独使用,也可以通过按位或(|)的方式组合使用。类用于表示一个正则表达式,并且可以通过不同的标志(flags)来修改正则表达式的行为。请注意,不同的标志可能会影响正则表达式的行为,因此在选择标志时要仔细考虑你的需求。原创 2024-04-16 07:36:36 · 1097 阅读 · 0 评论 -
eclipse报: cvc-elt.1: Cannot find the declaration of element
这个错误通常出现在XML文件中,它表示XML解析器在尝试解析XML文件时找不到某个元素的声明。这通常是因为XML文件引用的DTD(文档类型定义)或XSD(XML Schema定义)中不存在该元素,或者XML文件没有正确地引用DTD或XSD。如果你尝试了以上所有解决方案仍然无法解决问题,那么可能需要更详细地检查XML文件和相关的DTD或XSD文件,以确定问题的根本原因。你也可以考虑在相关的开发社区或论坛上寻求帮助,向其他开发者咨询他们的经验和建议。原创 2024-03-13 06:31:19 · 1889 阅读 · 0 评论 -
SpringBoot3使用xml配置注入
原先版本开头是这样的spring6 sringboot3版本开头是这样的的http换成了https即。原创 2024-03-13 06:22:46 · 886 阅读 · 0 评论 -
Java new String getBytes 使用utf8静态枚举 StandardCharsets.UTF_8
StandardCharsets类是Java中的一个工具类,它提供了一组标准字符集常量。StandardCharsets类位于java.nio.charset包中,是一个final类,不能被继承。使用StandardCharsets类可以方便地指定字符集,例如在读取或写入文件时指定字符集,或者在网络通信中指定字符集。这个示例演示了如何使用StandardCharsets类将字符串编码为字节数组,并将字节数组解码为字符串。如果您使用的是 Java 8 或更早的版本,这些常量将不可用。在这个示例中,我们使用。原创 2024-03-12 12:03:00 · 2141 阅读 · 0 评论 -
Invalid destruction signature
SpringBoot 报 Invalid destruction signature 是因为用xml注入时 destroy-method 指定的方法在类中没有定义原创 2024-03-12 11:01:03 · 256 阅读 · 0 评论 -
JavaSpringBoot的@Value设置默认值,用冒号:
请注意,默认值可以是任何有效的字面量值,如字符串、数字或布尔值。对于更复杂的默认值,你可能需要使用 SpEL(Spring Expression Language)表达式。这在某些情况下非常有用,比如当外部配置文件中缺少某个属性时,你可以确保应用程序仍然能够启动并使用一个合理的默认值。如果属性不存在或为空,Spring 将使用冒号后面的默认值。在Java Spring Boot中,可以使用@Value注解为属性设置默认值。如果属性值不存在或为空,则使用冒号后面的值作为默认值。要设置默认值,你可以在。原创 2024-03-11 09:45:33 · 2490 阅读 · 0 评论 -
如果实现了BeanFactoryPostProcessor接口,则@PostConstruct和@PreDestroy和@Value将不起作用
如果实现了BeanFactoryPostProcessor接口,则@PostConstruct和@PreDestroy和@Value将不起作用。原创 2024-03-11 09:25:55 · 1139 阅读 · 0 评论 -
JavaAwtSwing JButton去掉虚线框
【代码】JavaAwtSwing JButton去掉虚线框。原创 2024-03-05 01:15:30 · 156 阅读 · 0 评论 -
Java8Optional笔记240220
Optional。原创 2024-02-20 13:14:58 · 714 阅读 · 0 评论 -
FreeMarker 字符替换,插值 ${} ${!}空值处理 ${?}
{属性名}可用于取值在Spring中可在请求方法中将值放入Model中,Model可以注入,ModeAndView` 要自救new例如在模板文件中调用Model实例的setAttribute(Object 单参数)方法放入的实例, 可以通过类名第一个字母小写调用, 不用设置key 例如Use 可以用 ${user} ,AaBbCc 可以用 ${aaBbCc},LinkedHashMap 可以用 ${linkedHashMap}多个同类会取最后一个。原创 2024-02-05 17:10:24 · 732 阅读 · 0 评论 -
Public Key Retrieval is not allowed 异常解决方法 240204
数据库” 👉 “驱动管理器” 👉"Mysql"👉编辑👉右键新增。如果是用 DBeaver。原创 2024-02-04 19:19:42 · 901 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: org/springframework/aot/AotDetector 240204
原因, mybatis 版本与 springboot版本不匹配导致。springboot3.2.2改为2.7.18后。从(3.0.3)将为(2.3.2)后故障消除。原创 2024-02-04 13:47:34 · 3694 阅读 · 1 评论 -
FreeMark ${r‘原样输出‘} ${r“原样输出“}
接两个单引号或两个双引号包裹的内容可以原样输出, 字母。在${}使用 小写字母。原创 2024-02-04 08:40:13 · 312 阅读 · 0 评论