一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

SpringAOP学习--Spring事务简介及原理

事务简介
前篇介绍了SpringAOP,Spring事务是SpringAOP一个典型的应用。

事务即数据库事务,指同一批次对数据的读写要么全成功,要么全失败,用以保证数据的一致性,是关系统数据库核心功能。编程中通过设置事务手动提交,然后根据情况选择提交事务或者回滚事务。

数据库中事务使用:
BEGIN;#开始事务
update table_name set name=’XXX’ where id=’XXX’;#执行数据库操作
COMMIT; #提交
ROLLBACK;#回滚

龙生   08 Nov 2023
View Details

从HttpServletRequest中获取上传文件及参数的方法

  from:https://www.cnblogs.com/sanrenblog/p/15648871.html

龙生   06 Nov 2023
View Details

xhtmlrenderer 将html转换成pdf,完美css,带图片,手动分页,解决内容断开的问题

之前用itext7将html导出为pdf,比较方便,代码较少,而且支持base64的图片。但是itext7是收费的,所以换成了xhtmlrenderer。

xhtmlrenderer自动引入依赖包itext2.0.8,而且不能再引入其他版本的itext,因为itext2.0.8是已经被废弃的,里面的很多方法在新版本已经没有了。

龙生   02 Nov 2023
View Details

SHA256安全散列算法(JAVA)

 

龙生   01 Nov 2023
View Details

tkmybatis详细教程(一篇就明白)

tkmybatis 是对底层 sql 进行了抽象封装,不需要考虑 sql 怎么写,只需要按照逻辑思维,遵循 tkmybatis 的语法即可实现数据库操作。 本文适合对springboot项目结构有一定了解的读者。 本文的项目基础是一个demo项目(多模块的)。 1. 配置 1、添加 tkmybatis 的依赖

  2、创建 dao 层的 mapper 接口,每个接口都要继承  tk.mybatis.mapper.common.Mapper 接口。此接口的形式为 Mapper<T>,带了个泛型,此泛型一般指的是对应的 pojo 或者 domain。比如:

  3、在 Application 启动类上添加 mapper 扫描注解,表示要扫描到 dao 层的 mapper 接口。 比如本项目的mapper接口就统一放在 com.dgh.dao 下面,用 @MapperScan(basePackages = "包名") 来指定。 附注:在项目启动时,springboot 会自动扫描 Application 启动类所在的当前目录以及下一级目录,一般 Application 启动类都放在根目录,所以在单一项目下,只要是在 Java 类上添加了注解,都能够默认被 springboot 扫描到,并被添加到 springboot 的容器中,一般不需要特别用  @ComponentScan 去指定 springboot 要扫描哪些目录。 本文之所以特地用  @ComponentScan 去指定了 service 层和 controller 层的目录,是因为本文的项目是一个多模块项目,service 层和 controller 层各自都是一个独立的模块,与 Application 启动类不在同一目录下。

4、tkmybatis 具体的使用是在 service 层,service 层又分为接口和接口实现类,具体就在接口实现类里面。 5、其它的代码、配置与普通的springboot项目一样。 2. tkmybatis的结构 下图是 tkmybatis 的结构图,圈中的是 Mapper 接口,是最底层的,也就意味着它继承了所有的功能。因此才有了 […]

龙生   30 Oct 2023
View Details

在Java中为日期增加一天的多种方法

一、用 plusDays() 方法将 Java 中的日期增加一天
二、用 Calendar 方法将 Java 中的日期增加一天
三、用 Milliseconds 方法将 Java 中的日期增加一天
四、用 Instant 类向 Java 日期添加一天

龙生   27 Oct 2023
View Details

fastJSON,使用TypeReference处理复杂的泛型对象

解析JSON, 并将其转换为对应的数据结构。
例如,简单对象,或者复杂的泛型对象

JSON.parseObject(JSON.toJSONString(param), new TypeReference>() {})

龙生   26 Oct 2023
View Details

牢记这16个SpringBoot 扩展接口,写出更加漂亮的代码

Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。

龙生   25 Oct 2023
View Details

工作六年,我学会了用 Arthas 来辅助我的日常工作

客户线上问题,应该如何复现,让客户再点一下吗?
异常被吃掉,手足无措,看是哪个家伙写的,竟然是自己!
排查别人线上的 bug,不仅代码还没看懂,还没一行日志,捏了一把汗!
预发 debug,稍微时间长点,群里就怨声载道!
加日志重新部署,半个小时就没了,问题还没有找到,头顶的灯却早已照亮了整层楼……
线上机器不能 debug,也不能开 debug 端口,重新部署会不会破坏现场呢?
怀疑入参有问题,怀疑合并代码有问题,怀疑没有部署成功,全是问号……
一个问题排查一天,被 Diss 排查问题慢……

龙生   25 Oct 2023
View Details

2023 年微服务后端开发的 11 个最佳工具

微服务架构以将复杂的应用程序分解为易管理的服务而闻名,然而,管理微服务是一项具有挑战性的任务。为了确保开发工作流程的高效性,需要采用特定的工具。

在本文中,小编将为您介绍2023年最热的11款后端微服务开发工具,并全面介绍它们的基本功能和常见用例。不论您是经验丰富的微服务开发人员,还是初涉微服务领域的新手,本文都将为您提供宝贵的见解和剖析。

龙生   25 Oct 2023
View Details
1 17 18 19 175