Spring Boot
如漩涡
普通程序员
展开
-
Java MongoDB 多联查询
Java MongoDB 多联查询前言联表Select列表结构生成管道前言我使用的是spring包里的mongoTemplate进行操作Mongo,那基本单表的操作满足日常需求了;但是难免会有要联表操作的时候,mongo-data包里提供了一种Aggregation类,可以理解为建立管道。联表LookupOperation这个类就是用来进行联表操作的类,具体方法:newLookup ,用来创建一个LookupOperation.Builder;from, 要连接哪张表,类似Mysql的JOIN原创 2022-03-29 16:42:57 · 2498 阅读 · 0 评论 -
Java jar打包成exe应用程序(超详细)
Java jar打包成exe应用程序,可在无JDK/JRE环境下运行前言近期做了一个前后端合并的spring boot项目,但是要求达成exe文件,提供给不懂电脑的小白安装使用,就去研究了半天,踩了很多坑,写这篇文章,是想看到这篇文章的人,按照我的步骤走,能少踩坑。准备准备工作:一个jar包,没有bug能正常启动的jar包exe4j,一个将jar转换成exe的工具,链接:https:...原创 2020-02-04 01:07:18 · 62485 阅读 · 55 评论 -
Spring Boot定时器动态cron表达式
Spring Boot定时器动态cron表达式,可自定义时间前言Spring Boot要使用定时任务,就要在启动类上加上@EnableScheduling注解,并且在某个方法上加上@Scheduled(cron = "0 0 1 * * ?"),其中的cron表达式就不多说明了,而普通的这种方式,注解中的cron是没办法改变的,不能自定义动态的,或者是数据库中去读取,不可配置;但Spring提...原创 2020-01-14 14:23:30 · 1582 阅读 · 1 评论 -
Spring Boot 在request里解密参数返回
Spring Boot 在request里解密返回参数到控制器前言有个业务需求,一个请求来源web,一个请求来源APP,web需求验证签名,APP的参数是经过加密,所以出现了两个Controller,除了解密获取参数方式不一样,其他内容一模一样,这样不太合理,所以我决定重构。思路:既然只是解密不一样,获取到的参数是一样的,那可以写一个过滤器,在里面就把参数解密好,然后返回Spring Bo...原创 2019-11-29 00:09:48 · 1300 阅读 · 0 评论 -
Unexpected EOF read on the socket问题解决
文件上传报错java.io.EOFException: Unexpected EOF read on the socket 问题解决问题原因看字面意思,说是文件还没到末尾就被客户端中断,可是文件已经被上传到了服务器,并且信息也已经返回,为什么会这样?猜想是超出tomcat文件连接时间了,就被跳转解决方案我用的是Spring Boot项目,可以直接在application配置文件里加上一个t...原创 2018-10-26 15:31:24 · 73841 阅读 · 5 评论 -
request entity too large 413解决方案
文件上传报错request entity too large 413解决方案报错问题基本提示这种错误都是在前端请求时候,返回给前端的错误,错误编号413,错误提示request entity too large错误原因是部署了nginx,前端页面请求发送到了nginx,有文件大小限制,而上传的文件超出了nginx服务器的大小限制解决方案修改nginx服务器的配置文件nginx.confi...原创 2018-10-26 15:16:40 · 2320 阅读 · 0 评论 -
Spring Boot Feign服务调用之间带token
Spring Boot 使用Feign服务调服务传递数据带token验证 Feign服务调服务就不多做介绍了,值得提醒的是,Feign服务调服务传递数据的时候,比如某用户服务是需要带token验证的,而调用那个用户服务的时候报错,提示token为空,是因为Feign请求的时候没有带上token解决方式要解决这个问题,想必能猜到最方便的就是往请求头里加上token,一起带过去...原创 2018-08-24 17:40:58 · 29976 阅读 · 10 评论 -
@Component注解的使用
介绍开发中难免会遇到这个这个注解@Component@controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层@service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理@repository(实现dao访问) 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件 .@compo...原创 2018-08-27 18:38:49 · 21087 阅读 · 1 评论 -
Spring Cloud注册中心以及Fegin服务调服务
前言最近项目改造,采用微服务架构,学到了如何使用Spring Cloud的注册中心以及Feign服务调用服务机制 避免自己忘记,也分享给大家,粗略的做了一个demo,放到了github上面 github地址:https://github.com/Chenbin1996/eureka-parent关于介绍等等的就不说明了,网上资料很多,说的也很清楚 推荐文章服务发现和注册和E...原创 2018-07-21 09:50:17 · 1457 阅读 · 0 评论 -
mybatis代码生成器—网页版
代码生成器使用文档 文档创建日期 版本号 文档说明 创建人 2018/06/14 V1.0 代码生成器网页版使用方法说明 如漩涡介绍 代码生成器是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们...原创 2019-04-28 11:46:16 · 4748 阅读 · 2 评论 -
SpringBoot @Value中文乱码
Spring Boot在配置文件application.properties中写入中文,用@Value获取时乱码解决现象有些时候可以将固定中文等放入配置文件中,便于后期要改的时候,不用改代码重新打包,直接在配置文件中改,但出现了个问题jx.url = http://127.0.0.1:8080/indexinformation.review.content = 通过某某平台通知您有待审核公...原创 2018-12-18 11:34:40 · 13717 阅读 · 5 评论 -
Spring 事务嵌套无效
Spring Boot 关于嵌套事务无效解决方案Spring Boot自带事务注解 @Transactional, 只要在方法或者类上加上这个注解,就可以开启事务回滚。当然,是在单个事务的情况下,内嵌事务的时候却不起了作用,如方法A加了这个注解,方法B也加了注解,方法A里调用了方法B,那方法A出现了错误,而方法B没有,那方法B不会进行回滚代码示例方法A的代码@RestController...原创 2018-12-18 15:33:11 · 5313 阅读 · 5 评论 -
Spring Boot定时发送短信
Spring Boot定时发送短信的两种方式不少项目中估计都有遇到定时发送这个梗,我也遇到了,页面中下拉框选项有立即发送以及定时发送,立即发送就不用说了,定时发送可以讲一下,定时的方式有很多种,Java自带的定时器,Spring的定时器,大致讲一下我做的时候思路1. Java自带的定时器java.util包里的Timer,它也可以实现定时任务但是功能过于单一所有使用很少,而还有一个类Sche...原创 2019-01-16 22:13:17 · 6265 阅读 · 0 评论 -
Spring Boot 监听器、拦截器以及过滤器
Spring Boot 监听器、拦截器以及过滤器的使用监听器在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载、初始化缓存、特定任务的注册等等。这个时候我们就可以使用Spring提供的ApplicationListener来进行操作。拦截器Interceptor 在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进...原创 2019-03-13 22:46:56 · 342 阅读 · 0 评论 -
SpringBoot 优雅的处理异常
SpringBoot 统一异常处理像这种统一异常的文章博客有许多,但是每个人使用都有自己的心得,我来总结一下自己使用的心得统一异常,顾名思义,就是统一管理项目中会方法的异常,然后进行一个处理,Spring发生错误后,底层会去请求一个/error的地址,抛出对应的异常到页面上,对客户或者开发来说都不是特别的友好使用统一异常处理的话,可以返回自定义的异常数据,阅读性提高,优雅的处理异常使用异常...原创 2019-03-26 17:23:48 · 1500 阅读 · 1 评论 -
SpringBoot 自定义注解 + AOP实现参数效验,默认值赋值
SpringBoot 自定义注意 + AOP实现参数效验,默认值赋值,和@RequestParam相同功能写自定义注解的意义在于,@RequestParam没有对参数值进行效验,如空值;经过测试发现,@RequestParam只对本次请求中带不带参数名进行了效验,如参数是?userName=,@RequestParam则会放行,只有当userName不存在参数列表中是,才会提示报错,这就会导致...原创 2019-05-27 16:30:46 · 11258 阅读 · 1 评论 -
SpringBoot + Swagger + swagger-bootstrap-ui制作在线API文档
SpringBoot + Swagger + swagger-bootstrap-ui制作在线API文档Swagger这个框架我想大部分人多多少少有听说或者接触过,这个框架的宗旨在于简化后台开发者写doc api接口时间,在开发过程中,只要加入一些注解以及注释,就能被编译成一个网页,访问网页后的在线接口文档,都是配置好的,并且有个按钮,可以提供前端调试接口,查看返回数据。可以说这个框架挺好的,...原创 2019-09-11 00:40:41 · 628 阅读 · 0 评论 -
Mybatis Plus整合PageHelper分页
Mapper Plus整合PageHelper更轻便实现分页Mapper Plus自带分页PaginationInterceptor对象,虽然说目前没有什么问题,并且使用简单,但是个人感觉有个弊端:目前个人使用中,想要用Mapper Plus自带的分页功能的话需要在mapper对象中传入一个Page对象才可以实现分页,这样耦合度是不是太高了一点,从web到service到mapper,这个Pag...原创 2019-09-11 01:28:58 · 39579 阅读 · 12 评论 -
mybatis动态删除表报错There is no getter for property named 'tableName' in 'class java.lang.String'
今天在操作mybatis动态删除某一张表的时候,在控制台报了一个错误,有点懵逼,动态创建表的时候都还没事的,错误如下:There is no getter for property named 'tempTable' in 'class java.lang.String'XML代码:<update id="deleteTable" parameterType="java....原创 2018-05-24 16:18:45 · 2046 阅读 · 0 评论 -
Mybatis使用流程
使用IDEA或者是官网下载的方式,生成Spring Boot项目,pom.xml中加入相关的依赖,一般使用IDEA构建Spring Boot时可以勾选相关依赖的第一步: 先把数据库地址配置完成,在application.properties这个文件里#JPA配置spring.jpa.show-sql=true#JPA自动创建配置spring.jpa原创 2018-01-31 17:17:22 · 502 阅读 · 0 评论 -
Mybatis XML不同类型参数报错
org.mybatis.spring.MyBatisSystemException:Parameter 'basinCode' not found. Available parameters are [arg1, arg0, param1, param2]这种错误的原因大多数是因为XML中有两种基本类型的参数,再Mapper中定义了两个或者多个不同类型,如图:解原创 2018-01-25 11:13:47 · 796 阅读 · 0 评论 -
关于传入时间和后台数据库格式不对问题
前端的时间格式都是根据日期控件形成的,接着转换成字符串的格式发送给后台,但是后台数据库的时间格式基本都是Date类型,与字符串无法匹配,需要后台先进行转换再写入数据库,有些繁琐了,现下就有一个好的办法@DateTimeFormat@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@Column(name = "CREATETIM原创 2018-01-25 11:14:19 · 6856 阅读 · 1 评论 -
接口的参数是对象还是条件
后台操作无非是增删改查,但是怎么个增删改查还是要看需求达到不同效果,传的参数可以看个人喜好吧,关于Mybatis,我喜欢是将一个实体类对象当参数,前端传入的参数实体类中都有字段是对应上的,前端想要什么参数传入对象里都有,他想传哪个字段就传哪个字段不需要后台在参数中列好@PostMapping("/add")public Result add(PmProject pmPr原创 2018-01-25 11:14:01 · 3613 阅读 · 1 评论 -
Mybatis #和$使用的安全性提醒
使用$符号一般情况下是在 LIKE 模糊查询的时候,例如 SELECT * FROM User WHERE name LIKE '%${name}%'但是这个情况很容易被恶意注入SQL语句,安全性不高,数据别人一注入就都被找到了,所以能别用$就别用了,尽量用#来实现若像LIKE这样的又要用到$的时候,可以用这样来替代SELECT * FROM User WHERE name LIK原创 2018-01-25 12:46:15 · 716 阅读 · 0 评论 -
mybatis XML中批量更新值
在表中已经存好了名字,但是想在这些个名字后面再加上想要的内容,例如表中有一个叫钱塘江的,我要改成钱塘江水系,而且都这样改,都要加上水系两个字,这个好办,用Java来实现的话就是先查询出所有的内容存入 list 中,然后遍历这个list放入对象中,用Set实体类的方式拼接,然后Updatepublic Result uuu(){ List list = mdWa原创 2018-01-25 11:38:18 · 1803 阅读 · 0 评论 -
Java 基于webmagic框架进行爬取页面数据
爬虫框架网络上一搜一大把,看个人觉得哪款爬虫框架比较适用自己,刚开始我接触使用的是xxl-crawler,经过几次测试实现,虽然这个框架不错,功能丰富,但跟我当时的需求来说并不满足,或许是我还没研究深,不太会用,时间有限,我选择了去找其他框架,后来接触了webmagic,操作简单方便,可以多次深入爬取,以及css,$,xpath都支持,还有获取单条数据或者多条数据的选择,正好符合我想要的,就着手研...原创 2018-02-12 14:29:30 · 2263 阅读 · 1 评论 -
Spring Boot 打包
在pom.xml中引入插件,基本用IDEA创建的Spring Boot项目都会有的插件,只要加点内容进去在build下添加插件:<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...原创 2018-03-05 16:21:24 · 296 阅读 · 0 评论 -
Request header is too large 的问题解决
问题原因 一个新增的接口,因为前端传入一段很长的JSON数组,导致了打印台报错错误描述java.lang.IllegalArgumentException: Request header is too large解决方案查阅了一下资料得到了一个答案请求头超过了tomcat的限值。本来post请求是没有参数大小限制,但是服务器有自己的默认大小。 那就修改服务...原创 2018-05-04 11:42:48 · 92182 阅读 · 8 评论 -
SpringBoot上传文件出错
现象Spring Boot项目,今天做了一个与前端对接富文本的上传图片到服务器,返回一段URL给前端,一直运行着,前端一直请求接口一直上传图片做测试的时候,后台报了一个错误Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload locat...原创 2018-04-28 17:45:40 · 1776 阅读 · 0 评论 -
关于mybatis if 标签 == 不匹配的问题
起因在项目中遇到一个BUG,而且这个BUG还不知道因为什么,找了一下错误的原因,是因为在mybatis的SQL语句不匹配的问题mybatis有一个if标签,可以做判断,我用了 某某 == 1时做相应的SQL操作,最后BUG的原因是因为这个<if test="carrier != null and carrier !='' and carrier !='0'"> ...原创 2018-04-28 21:23:42 · 1148 阅读 · 1 评论 -
Spring Boot解决富文本上传图片跨域问题
在前后端分离的情况下,后台所写的接口在前端调用的时候,可能前端浏览器已经读取到了数据,但是在前端代码ajax请求的时候,请求回调里会出现页面跨域的控制台打印错误,这个时候只需要后台配置一下头部请求就可以解决我用的是SpringBoot,讲解一下如何配置SpringBoot来解决页面跨域问题创建一个WebMvcConfig类,将关于web的配置信息都用注解的形式来配置,相对比较方便...原创 2018-05-21 10:19:32 · 1692 阅读 · 0 评论 -
MySql高级-索引
1、索引是什么 索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。 可以理解为“排好序的快速查找数据结构” 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2、优势 类似大学图书馆转载 2018-01-31 10:24:45 · 234 阅读 · 0 评论