- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 iRedMail开源邮箱系统的搭建和文案修改总结
iRedMail官方安装文档:https://docs.iredmail.org/install.iredmail.on.rhel-zh_CN.html参考博客:https://blog.youkuaiyun.com/freshsunma/article/details/80631094iRedMail邮件系统-使用SSL证书参考链接: https://www.qnjslm.com/ITHelp/5...
2019-05-13 20:06:13
4474
原创 POI:解决使用poi自带的excel自适应列宽方法导出的excel表头被遮挡问题
项目情况: pmdb项目中需要导出excel文件,因为文件格式为最简单的表格样式,所以编写了一个通用的方法,通过输入查询出来的数据,生成excel,使用自适应的方式设置列宽。这时候虽然根据表格内容设置的列宽满足要求,但是表头的部分标题因为过长导致被遮挡。解决方式: 查询了poi底层实现之后,发觉它是通过SheetUtil的getColumnWidth方法获取每列...
2018-09-09 15:03:12
4873
原创 AOP:使用自定义注解记录指定方法的操作,实现日志功能
项目情况: pmdb项目开发过程中需要实现一个操作日志的功能,即将对数据库指定表的增删改查操作进行记录。我采用的是面向切面编程+自定义注解的方式实现的。这种方式的优点是,可以指定哪些方法的操作被记录。 我在开发中遇到的问题是: 1.我们的数据库表是有业务主键的,无法根据数据库命名规则来获取到。(日志记录中需要存入业务主键的值);...
2018-08-07 17:48:49
792
原创 Security框架:通过CorsFilter解决前端跨域请求问题
项目情况: 最近做的pmdb项目是前后端分离的, 由于测试的时候是前端与后端联调,所以出现了跨域请求的问题。浏览器默认会向后端发送一个Options方式的请求,根据后端的响应来判断后端支持哪些请求方式,支持才会真正的发送请求。CORS介绍:CORS(Cross-Origin Resource Sharing 跨源资源共享),当一个请求url的协议、域名、端口三者之间任意一与当前页...
2018-08-06 16:40:38
7091
1
原创 Swagger框架:使用swagger自动生成API
项目情况: 最近开的项目是巴斯夫公司的BCG项目,项目的后台框架阶段我选择了Swagger框架来实现API的生成。 该项目的后台技术框架有:SpringBoot+Spring Security+JWT+MyBatis+Swagger+POISwagger介绍: 个人感觉Swagger相当的方便,通过注解的方式将Controlle...
2018-07-17 20:51:13
7324
原创 SpringBoot实现动态定时任务
项目情况: 在当前项目中需要一个定时任务来清除过期的校验码,如果使用数据库存储过程的话不方便维护。因此采用SpringBoot自带的方式来设置定时任务。技术说明: SpringBoot自带的方式有两种可以实现: 一种是使用@Scheduled注解的方式,只需要在启动类或者它所在的类上添加@EnableScheduling注解允许执行定时任务,并且设置S...
2018-07-12 18:02:23
27993
7
原创 MySQL实现数据自动定时清除
项目情况: 今天项目中涉及到一个注册问题,注册的校验码需要定时删除。(后来需求变了,采用SpringBoot自带的方法来执行定时任务)说明:我在这里是根据注册记录表中的一个更新时间字段和数据库当前时间进行比较,得出该记录存在的时间。使用timstampdiff函数可以解决该问题。具体sql如下:#开启event_scheduler sql指令SHOW VARIABLES LIKE '%...
2018-07-11 20:59:32
6614
原创 读取Excel数据
读取Excel技术说明 一、项目情况 巴斯夫项目需要实现Excel的相关操作:Excel上传读取。 二、添加依赖<!-- 读取excel用到的--><dependency> <groupId>org.apache.poi</groupId>...
2018-07-10 11:54:11
697
原创 使用java自带的方式调用打印机打印图片
功能描述: 在二手车项目中需要实现一个自动打印的功能。将打印的设置在java代码中写好,直接调用打印机打印,不需要有打印设置的页面。这里我使用的是Java自带的方式,一开始是打印pdf,但是由于公司的打印机不能识别application/pdf类型,因此最后我打印的是pdf转换的jpg图片。(说明:最后我写的功能正常执行并打印出图片,但是由于该项目是SaaS软件,服务器由公司维护,而该代码...
2018-06-29 19:15:18
8773
4
原创 使用itextbox实现pdf的在线预览
功能实现背景:一个二手车项目,需要能够打印pdf并且实现在线预览。分析: (1)在线预览预览的是一张图片,所以我需要在生成pdf之后将pdf转换为jpg格式图片,这里使用itextbox可以实现。 (2)我在转换出图片后,需要将图片上传到公司的图片服务器,这就需要调用公司的接口,但是公司的上传接口需要的参数是MultipartFile类型,因此,我需要将File类型的文件转换成MultipartF...
2018-06-26 19:28:48
869
原创 企业级博客项目笔记(二)
# 企业级博客项目笔记(二)## 一、数据持久化### 1.JPA简介>* JPA(Java Persistence API)是用于管理Java EE 和Java SE 环境中的持久化,以及对象/关系映射的Java API>* 封装JPA的框架有:EclipseLink、Hibernate、Apache OpenJPA>* 注意:实体实例被当做值以分离对象的方式进行传递(例如通过...
2018-06-19 19:58:11
390
原创 企业级博客项目笔记(一)
##一、Gradle测试###1.编写项目构建信息 >初始化helloworld项目:可以复制基础项目的gradle、src >、.gitignore、build.gradle、gradlew、gradlew.bat文件 > * 编辑build.gradle文件:修改version版本号 * 编译项目:gradle build * 启动项目:java -jar 项目jar包...
2018-06-08 15:22:42
383
原创 在签名图片上生成水印
项目情况是:在页面上进行签名,签名过后需要生成时间水印。生成水印的代码如下: public static byte[] markImageByTextbystream(String logoText, byte[] srcImgstream, Integer degree) { ByteArrayOutputStream os = null; try { ...
2018-05-31 11:18:49
529
原创 调用方法打印pdf的过程中遇到的封装问题的总结
@RequestMapping(value = "/print") //Controller层调用Service层public void getdmspdf(HttpServletRequest request, HttpServletResponse response)throws Exception{ InputValue<OrderprintprecheckRequestD...
2018-05-15 10:48:10
347
原创 关于获取预约状态功能的业务逻辑部分的总结
今天完成了获取预约功能的Controller、Service、Dao层代码的编写,其中我遇到了两个问题,现总结如下: 1.因为项目是前后端分离的,所以我在Dao层访问数据库的时候应该使用的是Entity作为输入参数,访问数据库,而不是Dto。如果输入参数并不属于数据库字段,我需要新建一个Entity来封装参数,同时该Entity应该继承另一个对应的数据库表的Entity. 2.在业务逻辑方面有一个...
2018-05-08 10:36:39
4011
原创 写数据库字段转换成Dto属性的过程中遇到的问题
这两天我在完成一个匹配数据库字段到Dto属性的任务的过程中遇到了一些问题,总结如下: 1.一开始我直接修改了Dto中的属性,使之与数据库字段匹配,但是.......项目经理告诉我不能修改Dto,好吧,我本来就不该修改Dto,所以revert重来。 2.然后我看到代码中有一个Service中有个getCheckInfoDto获取CheckInfoDto对象的方法,CheckInfoDto就是...
2018-05-03 16:04:15
2078
原创 从数据库中快速查找对应信息
昨天我需要修改接口Dto的属性与数据库中的字段匹配,我采用的是直接查询注释的方式,大部分写了注释的都能轻松找到。其他的需要通过理解表与表之间的关系才能找到对应字段。比如我需要查找“检测人员名称"属性,就需要考虑通过程序入口的那个表的“员工id”字段来查询“员工名称“。这时候用查注释的方式就不管用了,需要理解表结构。-- 根据注释查询select column_name,table_name,da...
2018-04-28 10:39:09
2833
原创 idea的隐藏文件操作
今天知道一个实用的忽略不想提交的文件的方法:shelve changes 搁置改变我有四个文件没有写完,有错误,既不想把它们一不小心提交也不想在测试运行的时候受它们的影响:右键选择:Shelve Changes 搁置改变确认会在shelf中生成一个目录保存搁置的文件,这时候项目中已经没有这4个文件了,提交的时候也不会出现如果你想要找到它们:找到对应的目录,右键-->Unshelve ,就...
2018-04-27 16:43:48
2878
原创 Mybatis注解方式完成输入参数为list的SQL语句拼接
首先将list集合拼接成一个"1,2,3,4"格式的字符串然后将这个字符串封装到一个类中:TyreInfoIdStr这里的@SelectProvider是调用一个外部的类的方法的返回值作为sql语句。在这个方法中拼接SQL语句与list集合的字符串,我这里是提前拼接过了。...
2018-04-24 18:19:20
4219
转载 Spring并发访问的线程安全性问题
下面的记录对spring中并发的总结。理论分析参考Spring中Singleton模式的线程安全,建议先看spring中的并发访问题:我们知道在一般情况下,只有无状态的Bean才可以在多线程环境下共享,在Spring中,绝大部分Bean都可以声明为singleton作用域。那么对于有状态的bean呢?Spring对一些(如RequestContextHolder、TransactionSynchr...
2018-04-24 11:08:10
164
原创 写项目接口中遇到的问题
1.接口文档问题: 注意接口文档中传入的参数具体对应表中的哪个,如果不清楚及时问相关人员。 注意分析清楚业务逻辑,需要输入的参数有哪些,需要输出的参数有哪些。分析清楚再写比较好。 注意多写注释,可以先写好注释再写代码。2.前后端分离的情况下: 需要写对应于前端页面的Dto,不管是请求参数还是响应参数都需要对清楚,如果SQL语句中出现了未知来源的条件参数,可能是需要在Se...
2018-04-23 13:03:07
634
原创 使用itext实现打印pdf报表
itext: 在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题。步骤:1.创建一个maven项目2.添加pom依赖如下:<dependencies> <dependency&g...
2018-04-19 10:35:38
3511
原创 多条件模糊查询参数越界问题
今天在写sql语句的时候发现报了一个参数越界问题,postman提示如下:查看dao层sql语句之后发现模糊查询语法错误: 错误在 like '%#{uiname}' 这里,应当为:即:#符号改为$上网查找发现另一种写法,就是用concat函数拼接字符串:(这种方式需要对双引号转义,不推荐) CONCAT(CONCAT("%",#{uiname}),"%")...
2018-04-18 15:49:47
583
原创 springBoot单元测试案例
解释说明: 1. Spring测试框架提供MockMvc对象,可以在不需要客户端-服务端请求的情况下进行MVC测试,完全在服务端这边就可以执行Controller的请求,跟启动了测试服务器一样。 2.perform(get(...))建立web请求。在我们的第三个用例中,通过MockMvcRequestBuilder执行GET请求。andExpect(...)可以在perform(.....
2018-04-17 15:44:19
604
原创 sql语句实现动态添加查询条件
今天遇到一个问题,就是需要根据前端页面发送的条件查询数据库记录,但是前端发送的条件是不确定的。如果使用mybatis的xml方法可以使用if标签灵活的添加判断条件,但是现在我使用的就是单纯的sql。我是这样解决的:使用case when 语句可以完成这样的sql拼接。值得注意的是判断的时候用的是is null/is not null,而不要使用=/!=昨天忘了判断空字符串,修改如下:之前是直接使用...
2018-04-16 21:07:20
41348
9
原创 使用postman测试一个SpringBoot项目的添加修改功能出错
情况分析: 1.该项目前后端分离,Controller层接受的参数是一个JSON数据流,因此需要请求头中的ContentType参数为application/json. 2.因为接收参数的模型中有ArrayList集合,所以我需要在postman的请求体中写一个json格式的集合。现在的问题是: 我的json格式的集合好像写错了,不传递这个集合的话就能修改成功。所以怎么使用po...
2018-04-15 18:34:21
1845
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人