编辑
2022-11-23
学习记录
00

一、事务😀

事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。 编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例:

java
try { //TODO something transactionManager.commit(status); } catch (Exception e) { transactionManager.rollback(status); throw new InvoiceApplyException("异常失败"); }

声明式事务:基于AOP面向切面的,它将具体业务与事务处理部分解耦,代码侵入性很低,所以在实际开发中声明式事务用的比较多。声明式事务也有两种实现方式,一是基于TX和AOP的xml配置文件方式,二种就是基于@Transactional注解了。

java
@Transactional @GetMapping("/test") public String test() { int insert = cityInfoDictMapper.insert(cityInfoDict); }

在工作中常用的方式

java
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)

二、@Transactional介绍

1、@Transactional注解可以作用于哪些地方?

@Transactional 可以作用在接口、类、类方法。 例子:

作用于类:当把@Transactional 注解放在类上时,表示所有该类的public方法都配置相同的事务属性信息。

作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。

作用于接口:不推荐这种使用方法,因为一旦标注在Interface上并且配置了Spring AOP 使用CGLib动态代理,将会导致@Transactional注解失效

编辑
2024-12-05
实用工具
00

原因

由于业务需要在图片上打上文字,这就涉及字体版权问题,我就找一些较为不错的可商用字体

Open Sans

OpenSans是一种人文主义无衬线字体,由阿森德公司类型总监Steve Matteson设计。该版本包含完整的897字符集,其中包括标准的ISO拉丁文1、拉丁文CE、希腊文和西里尔字母字符集。OpenSans的设计笔正有力,开放的形式和中立的,但友好的外观。它为打印、网络和移动界面进行了优化,并在其信笺形式上具有出色的可读性特征。

字体Github地址

思源黑体

思源黑体是Adobe与Google历时三年在2014年7月宣布推出的一款开源字体,这是一款新的供桌面使用的开源 Pan-CJK 字体家族,完全支持繁体中文、简体中文、日文和韩文,它还包括来自我们颇受欢迎的 Source Sans字体家族的拉丁文、希腊文和西里尔文字形。

该款字体是由Google和Adobe合作开发的,Google将其命名为Noto SansCJK,作为Google的Noto字体家族的成员。Adobe则命名为Source Han Sans,作为Adobe的Source字体家族的一员。Adobe拥有字体设计的版权。发布的字体文件则可以不受限制的免费使用。

本字体以SIL Open Font License 1.1(SIL 开源字型授权版本1.1,简称SIL OFL 或OFL)授权协议发布

Adobe版思源黑体来源出处:

github项目:https://github.com/adobe-fonts/source-han-sans

Adobe官网:https://blog.typekit.com/2014/07/15/introducing-source-han-sans/

谷歌版思源黑体来源出处:

github项目:https://github.com/googlefonts/noto-cjk

编辑
2024-12-02
遇到的问题
00

问题

todesk一直提示连接不上服务器,不能进行远程

命令

sudo systemctl restart todeskd.service

重启todesk程序即可

编辑
2024-12-02
遇到的问题
00

原因

向日葵的未知连接提示框一直点击不掉,只能重新向日葵程序,但是直接在右上角图标右键退出不能实现,只能强制退出

命令

查找向日葵

ps -ef | grep sunlogin

查询结果

ps -ef | grep sunlogin root 1093 1 0 9月29 ? 00:01:10 /usr/local/sunlogin/bin/oray_rundaemon -m server ubuntu 1266604 2175 0 10月29 ? 04:55:53 /usr/local/sunlogin/bin/sunloginclient ubuntu 1266650 1266604 0 10月29 ? 00:43:59 /usr/local/sunlogin/bin/sunloginclient --type=zygote --no-sandbox --lang=en-US --locales-dir-path=/usr/local/sunlogin/res --log-file=/usr/local/sunlogin/bin/debug.log --resources-dir-path=/usr/local/sunlogin/res --user-agent=SLRC/15.2.0.63064 (Linux,x64,Person,loginver=10,appname=sunloginRemoteClient) Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36

关闭命令

kill -s 9 1093 kill -s 9 1266604 kill -s 9 1266650
编辑
2024-12-02
遇到的问题
00

错误提示

获取图片失败: Invalid argument to native writeImage

源代码

Java
public static byte[] getUrlImageBytes(String url, int width, int height) { try { // 直接从网络读取图片并调整大小 BufferedImage image = Thumbnails.of(new URL(url)).size(width, height).asBufferedImage(); try(ByteArrayOutputStream baos = new ByteArrayOutputStream()){ ImageIO.write(image, "jpg", baos); return baos.toByteArray(); } } catch (IOException e) { log.error("获取图片失败: " + e.getMessage()); } return null; }