分类 技术 下的文章

基本概念
必须是从接口调用,xxServiceImpl.edit()
加 @Transactional
A 调用 B
假设 A有回滚,则 B同样可以回滚

假设 A 里有循环,多次调用B, 要求 一部分调用B回滚,
则,不能在 A上加回滚,在B上加回滚,并且 A调用B的方式,必须改为 xxServiceImpl.edit()从接口调用

pdf转图片,java

使用 org.apache.pdfbox

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>1.8.13</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>fontbox</artifactId>
    <version>1.8.13</version>
</dependency>
File pdf = new File(fileName + "a.pdf");
String jpgName = fileName + "a.jpg";
File jpg = new File(jpgName);
HttpUtil.downloadFileFromUrl(pdfUrl, pdf); //hutool
PDDocument document = PDDocument.loadNonSeq(pdf, null);
List<PDPage> pdPages = document.getDocumentCatalog().getAllPages();
int page = 0;
for (PDPage pdPage : pdPages) {
    ++page;
    BufferedImage bim = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
    ImageIOUtil.writeImage(bim, jpg.getName(), 300);
}
document.close();
InputStream inputStream = Files.newInputStream(Paths.get(jpg.toURI()));

String url = AliyunOSSUtils.putStream(jpgName, "certificate_img", inputStream);
pdf.delete();
jpg.delete();
return url + jpgName;

中文乱码的解决方案,缺少字体

#cd /usr/share/fonts/   // 进入系统自带的字体目录
#mkdir myfonts  // myfonts 是你自己随便取得文件夹名字,一定要有这一步
#将字体文件拷贝到这个文件夹下,在cd /usr/share/fonts/目录下执行以下命令
#mkfontscale   
#mkfontdir
#fc-cache -fv           //更新字体缓存
#fc-list    // 查看系统中所有得字体,可用于测试是否安装字体成功
fc-list :lang=zh   // 查看已安装的中文字体,可用于测试是否安装字体成功

如果是用docker部署,需要把字体也放进docker中

需求:很多个产品,每个产品有20~30个条件,用户从全部60个条件中,选出他符合的条件。要求根据用户符合的条件,找出产品。

思路1

建立关联表,根据用户id查出所有条件,然后循环查产品条件

思路2

因为条件总数不超过64,所以可以用 64位 的long表示,把条件组合转为二进制数

eg:用户符合的条件序号为 1,2,4, 二进制数= 1011

两个二进制数 a & b = a, 则说明 a是b的子集

扩展一下,如果条件数量超过64

  1. 采用多个long类型的数据表示一个组合
  2. 采用字符串“010111” ,自己实现一个字符串版本的位运算

Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。

特点

  1. 通用流程化管理,
  2. 冲刺节点,在一个冲刺过程中必须专注,限制时间不超过16小时
  3. 每个冲刺后进行会议总结,评审
  4. 尽早发现问题
  5. 引入客户,多角色思考
  6. 分阶段监控,sprint冲刺
  7. 允许改变需求,考虑到需求可能改变

为什么要折腾

觉得有个可以自己折腾的服务器很爽。原本用GitHub page做个博客,后面想做一个 个人数据库,管理和记录每一个任务。

配置jsp,操作数据库

1、安装宝塔,登录宝塔 手机号

2、在宝塔 软件商店 安装tomcat,修改配置 line 69,端口改为80 或者不改

3、进入 /www/server/tomcat/webapps/ROOT,修改jsp文件

4、上传mysql-connector-java-5.1.39-bin.jar库(百度云),到tomcat lib