Java开发笔记
文章平均质量分 85
FLY-DUCK
距离产生错误的美!
展开
-
SpringBoot项目使用docker-maven-plugin插件构建docker镜像以及推送到docker hub或docker registry私服
本文介绍的方式是使用docker-maven-plugin的方式构建SpringBoot的docker镜像以及推送到私服或docker hub服务器上。原创 2022-10-17 15:01:26 · 3995 阅读 · 0 评论 -
Mybatis使用collection分页问题
项目中mybatis分页的场景是非常高频的,当使用ResultMap并配置collection做分页的时候,我们可能会遇到获取当前页的数据少于每页大小的数据问题。使用PagerHelper插件同样会遇到该问题。原创 2021-11-22 14:06:05 · 7433 阅读 · 0 评论 -
SpringBoot通过自定义字段注解以及反射获取对象
SpringBoot中通过自定义字段注解以及反射,实现从数据转换并初始化对象。应用场景主要是通过外部接口,数据库,文本或者Excel读取数据,然后通过反射以及字段注解自动转换为对象,灵活的处理外部数据到对象的转换。原创 2021-10-09 15:34:53 · 4934 阅读 · 0 评论 -
SpringBoot项目Spring Retry重试的使用
项目中为了保证处理更健壮,容错性更高,更不容易失败,使用自动重试的失败的操作,可提高后续操作的可用性,保证容错性。Spring实提供了自动重试机制Spring Retry,功能简单实用。原创 2021-07-01 14:59:05 · 744 阅读 · 0 评论 -
SpringBoot定时任务Task常用开发方式
目录SpringBoot定时任务基于注解的定时任务@EnableScheduling开启定时任务@Scheduled开发定时任务@Scheduled开发示例开启多线程定时任务开启异步定时任务新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出原创 2020-12-31 23:20:16 · 595 阅读 · 0 评论 -
SpringCloud Gateway跨域CORS问题解决方案
最近使用SpringCloud搭建微服务,使用Gateway网关统一对外提供API接口,项目使用前后端分离,前端开发对接接口的时候抛出接口提示跨域问题不能调用。才注意到Gateway网关没有跨域相应的配置,默认情况下,是不允许任何跨源请求的,必须显式配置以指示应允许的内容。通过官网文档查阅、网上其他网友总结,最后使用官方文档描述的方法通过配置的方式解决了Gateway网关跨域的问题。spring: cloud: gateway: discovery: lo.原创 2020-12-18 22:27:20 · 3511 阅读 · 0 评论 -
SpringCloud Gateway结合注册中心启用负载均衡配置uri包含下划线的一个坑
最近在使用SpringCloud搭建微服务,注册中心使用Eureka,网关使用Gateway,在配置Gateway网关的时候遇到一个问题,导致请求通过网关无法转发到对应的服务上去。抛出问题Gateway网关中配置各个微服务的route,uri使用lb协议开启负载均衡功能,但是有些route可以正确的转发到对应的服务,有些route却无法转发到对应的服务,通过调试提示valid host。Gateway中route的配置部分示例如下:spring: application: name原创 2020-11-27 21:44:56 · 2788 阅读 · 2 评论 -
SpringBoot项目中ModelMapper配置以及使用
项目中对象与对象赋值转换使用的频率非常的高,比如数据库表实体对象(Entity)与业务类对象(Model)之间的赋值传递,或者模型对象(Model)与视图对象(ViewModel)之间的赋值传递。如果我们一个一个字段的赋值,将是非常繁琐并且毫无价值的重复工作,此时虽然我们可以自己通过反射提取个公共的方法来处理,但是更高效的方式是查看是否有第三方已经提供了比较成熟稳定的工具包,避免重复造轮子的工作。在C#中我们一般使用AutoMapper作为对象转换工具(AutoMapper配置使用参考:https://原创 2020-11-26 21:35:04 · 9890 阅读 · 0 评论 -
SpringBoot数据库连接池Hikari配置
在项目中,一般情况下访问数据库,会创建一个连接,用完后就关闭它,对于简单的系统这样不会带来什么明显的性能上的开销。但是对于一个复杂的系统,频繁的建立、关闭连接,会极大的减低系统的性能,因为对于数据库连接的使用可能会成为系统性能的瓶颈。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。SpringBoot默认使用HikariSpringBoot项目如果原创 2020-11-17 22:42:35 · 27254 阅读 · 2 评论 -
SpringBoot中使用Mybatis持久层框架操作数据库
SpringBoot项目中绝大多数的数据都是存储在数据库中,所以项目与数据库的交互是很常有的操作。SpringBoot项目中我们可以使用JDBC去连接数据库,但是有非常多的 JDBC 代码、手动设置参数以及获取结果集会耗费很多时间。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。创建项目配置pom.xml使用IDEA开发工具创建一个空的Maven项目,pom.xml引入springbo原创 2020-11-16 22:40:08 · 1012 阅读 · 0 评论 -
SpringBoot前后端分离项目上传文件功能
SpringBoot前后端分离项目开发中,上传文件的功能还是比较常见的。SpringBoot是支持上传文件功能,默认的单个文件大小限制为spring.servlet.multipart.max-file-size=1MB,单个请求限制为spring.servlet.multipart.max-request-size=10MB。项目中可以设置单个文件上传大小限制以及单个请求大小限制,以及文件超过最大限制后返回自定义Restful风格的Json字符串。功能开发接口开发比较简单,直接在接口中处理Mult原创 2020-11-12 16:47:43 · 1901 阅读 · 2 评论 -
Java微信支付官方wxpay-sdk无法继承WXPayconfig类问题
在开发微信支付的过程中,微信官方提供了wxpay-sdk以及README.MD文件中开发demo。官方暂时未提供maven项目依赖,我们需要自己将wxpay-sdk代码引入项目或者自己手动打包到本地或者私服通过maven来管理。微信支付官方sdk地址:https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_JAVA.zip问题当自己打包到本地或者私服项目通过maven管理wxpay-sdk,创建自己的实现类MyWXPayconfig继原创 2020-11-05 10:01:28 · 2927 阅读 · 4 评论 -
IDEA中使用Mybatis Generator自动生成数据库持久层相应的代码
当项目中我们使用Mybatis作为ORM框架是,Mybatis的XML配置以及对应的实体类以及Mapper类的创建会占用我们大量的时间,如果我们在这上面耗费太多的时间就太浪费了。官方给我们提供了Mybatis Generator工具,只需要简单的配置,就能够自动为我们生成简单的CURD对应XML配置、数据库表对应的实体类以及Mapper类,把我们从简单重复的工作中解放出来,专注于业务的开发。本文主要介绍IDEA开发工具中,常用的mybatis generator的配置以及基于maven方式运行mybat原创 2020-11-02 21:58:29 · 882 阅读 · 0 评论 -
SpringBoot自定义注解 AOP以及拦截器方式
SpringBoot项目中自定义注解的使用,通过继承HandlerInterceptorAdapter类使用拦截器的方式以及AOP切面的方式。原创 2020-11-01 18:10:16 · 1378 阅读 · 0 评论 -
SpringBoot中事件的使用
项目中很多场景可以使用事件来对系统进行解耦,让系统更便于维护和扩展。SpringBoot项目默认是支持事件的,我们只需要自定义事件,然后发布事件,之后监听事件处理业务逻辑即可。SpringBoot中我们会用到事件抽象类ApplicaltionEvent,事件监听接口ApplicationListener,事件发布接口ApplicationEventPublisher。本文基于用户注册成功之后发送短信以及邮件功能作为业务场景,将用户注册成功作为事件,模拟发送短信以及发送邮件作为用户注册成功事件的监听器。原创 2020-10-17 23:05:15 · 1104 阅读 · 1 评论 -
Java中正则表达式结合appendReplacement方法替换字符串中部分特殊字符
Java开发中字符串的替换比较常用,一般情况下replaceAll方法可以满足需求,但是遇到一些特殊的情况,replaceAll方法并不能满足需求,如果使用Pattern与Matcher,使用Matcher中的find、group、appendReplacement和appendTail方法结合StringBuffer可以解决替换字符串中某些特殊的字符。比如需要将字符串中的 - ( ) { } [ ] : 特殊字符前添加转义符\。 使用replaceAll方法不是很好处理,可以一个一个特殊字符处理,但是原创 2020-09-22 16:31:42 · 1512 阅读 · 0 评论 -
SpringBoot整合Swagger2接口文档
在项目中如果对外提供接口,那么接口文档的非常有必要的,是其他对接人员了解接口的唯一途径。如果接口文档写得不好,对接人员是非常痛苦的。而对于开发人员来说,写好文档本来是一件比较困难的事情。在SpringBoot中我们可以使用Swagger工具自动生成接口文档,项目中按照Swagger的注解可以很标准的输出接口文档。...原创 2020-09-17 21:45:57 · 371 阅读 · 0 评论 -
SpringBoot验证的使用及@Valid和@Validated区别
在开发SpringBoot项目的时候,验证的使用是必不可少的,项目中常用的@Valid和Validated来实现验证。相同点与区别 @Valid @Validated 标准 标准JSR-303规范 增强JSR-303规范 包 javax.validation org.springframework.validation 验证结果 BindingResult result BindingResult result 分组支持 不支持.原创 2020-08-08 23:14:20 · 2478 阅读 · 0 评论 -
SpringBoot中Logback常用配置以及自定义输出到MySql数据库
之前基于SpringBoot开发的项目运行一段时间后,客户使用网站偶尔会出现接口调用失败的情况,每次产品经理询问是怎么回事的时候,都需要让运维提下最近的日志才能分析具体原因,这样时效性和便利性不能满足当前的要求。项目之前的日志框架使用的是Logback,日志直接存入服务器上的文件中,现在计划将日志存入MySql数据库中,然后开发系统日志查询功能,这样可以通过项目直接分析日志,不用每次需要分析日志都需要麻烦运维人员。Logback输出日志到控制台和文件项目之前是将Logback的日志输出到文件中.原创 2020-07-01 22:35:22 · 4390 阅读 · 6 评论 -
SpringBoot中LogBack生产环境解决log.path_IS_UNDEFINED目录问题
通过启动服务的时候设置系统变量解决自动生成log.path_IS_UNDEFINED目录问题,-Dlog.path=D:/logs参考:https://www.cnblogs.com/alexgl2008/articles/12462720.html原创 2020-06-05 22:54:30 · 12483 阅读 · 0 评论 -
SpringBoot项目注册为windows服务
在SpringBoot项目开发过程中,特别是前后端分离的项目,一般在开发过程中需要将SpringBoot发布出来供前端人员调用,在windows服务器上通过命令行很容易的让SpringBoot项目发布出来,但是如果命令行界面关闭了获取服务器重启了,我们的SpringBoot项目也停掉了。使用NSSM工具注册为windows服务...原创 2020-05-12 21:27:29 · 1943 阅读 · 0 评论 -
IDEA设置类和方法的注释模板
博主最近从.NET转Java,Java的开发工具使用IDEA,所谓工欲善其事,必先利其器,首先要熟悉IDEA工具的使用,才能为后续的开发提高效率。本篇博客主要记录IDEA关于注释模板的配置和使用。一般我们开发程序都会涉及到注释,注释对于项目很有必要的,特别是对于项目后的维护。IDEA中我们可以为新建的类、接口、枚举等文件设置注释模板,为方法设置注释模板,统一注释风格以及提高添加注释的效率。为IDEA配置全局编码格式在IDEA中打开File-> Settings...弹出框中,选择Ed.原创 2020-05-11 21:41:59 · 489 阅读 · 0 评论