
Struts
文章平均质量分 63
贺公子之数据科学与艺术
科技向善,拥抱开源,要用技术的影响力来领导人,而不是威权和职位!
展开
-
声明式事务和编程式事务的区别与使用
声明式事务是通过配置或注解的方式实现事务管理,开发者不需要手动编写事务管理代码。它基于AOP(面向切面编程)的思想,将事务管理逻辑与业务逻辑分离。在Java中,事务管理是确保数据一致性和完整性的重要手段。编程式事务是通过手动编写代码来管理事务的开始、提交和回滚。这种方式灵活性更高,但代码侵入性强。适用于复杂的事务逻辑,例如需要根据条件动态决定是否开启事务。适用于大部分业务逻辑中,尤其是当事务逻辑与业务逻辑分离时。原创 2025-04-02 16:13:13 · 202 阅读 · 0 评论 -
ReentrantLock 与 ReentrantReadWriteLock 的区别与用法
是一种读写锁,允许多个读线程同时访问,但只允许一个写线程访问,或者阻塞所有的读写线程。这种锁的设计可以提高性能,特别是在数据结构中,读操作的数量远远超过写操作的情况下。方法首先尝试获取读锁。如果缓存无效,它会释放读锁并获取写锁来更新缓存。更新完成后,它会进行写锁到读锁的降级,允许其他线程并发读取。可以显著提高并发性能,因为多个读线程可以同时访问数据,而写线程则独占访问。可以在确保数据一致性的同时,提高多线程环境下的性能。相同的基本行为和语义,但功能更加强大。假设有一个共享的数据结构,读操作远多于写操作。原创 2025-01-12 23:19:28 · 488 阅读 · 0 评论 -
SQL查询语句并将结果集限制为只返回第一条数据
在Java中获取数据库表中的第一个数据,可以使用SQL查询语句并将结果集限制为只返回第一条数据。原创 2024-12-13 10:02:53 · 296 阅读 · 0 评论 -
【Spring注解大全】
@PostConstruct: 在bean创建完成并且属性注入完成后执行的方法,相当于init-method; @Cacheable: 标记方法的结果可以被缓存,下次调用时直接从缓存中获取; @AfterReturning: 后置通知,方法正常执行后执行; @AfterThrowing: 异常通知,方法抛出异常后执行; @Around: 环绕通知,可以在方法执行的前后进行操作; @Transactional: 将方法设置为事务性方法; @After: 最终通知,无论方法如何执行都会执行;原创 2024-10-22 23:29:12 · 297 阅读 · 0 评论 -
用GitHub构建个人Maven仓库
maven-metadata.xml文件很重要,如果没有这个文件来指明最新的jar版本,那么即使远程仓库里的jar更新了版本,本地maven编绎时用上-U参数,也不会拉取到最新的jar!maven在编绎项目时,会先尝试请求maven-metadata.xml,如果没有找到,则会直接尝试请求到jar文件,在下载jar文件时也会尝试下载jar的md5, sha1文件。在Github上新建一个项目,然后把home/hengyunabc/code/maven-repo下的文件都提交到gtihub上。原创 2024-04-15 09:34:02 · 1194 阅读 · 0 评论 -
史上最全的Java实体类VO,DTO,BO,DO解释
数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载。BO(Business Object): 业务对象,可以由Service层输出的封装业务逻辑的对象。视图对象 XxxxVO,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。业务传输对象 BO,可以包括一个或多个其它的对象。原创 2022-05-16 21:22:59 · 9401 阅读 · 0 评论