![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot
文章平均质量分 71
xiaoguangtouqiang
一枚小小程序员
展开
-
csv文件转java类
1.引入jarcompile group: 'org.apache.poi', name: 'poi', version: '4.0.1'compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.0.1'2.假设csv的格式如下所示3.转换代码如下所示public List getCsvData(){...原创 2020-03-03 15:23:12 · 742 阅读 · 0 评论 -
k8s常用命令
1>根据关键字查询关键字前后100行kubectl -n namespace logs -f xxxnode | grep -100 '关键字'2>在所有的命名空间查询kubectl get po --all-namespaces | grep xxxx3>查看pod的状态,通常在pod状态异常的时候使用kubectl -n namespace desc...原创 2020-01-20 17:40:32 · 1346 阅读 · 0 评论 -
K8s中pv和pvc的使用
在我们的应用中可能经常有文件存储的需求,在docker的部署中,我们是通过将容器中的目录直接挂载到宿主机的目录上来解决这个问题的,那么k8s部署的方式肯定有所不同,k8s因为是多节点的,每个pod挂载的是对应节点的某个目录,这个会导致节点数据的一致性问题;在k8s中主要通过pvc的方式进行文件的挂载管理;1.PVCPVC 的全称是:PersistentVolumeClaim(...原创 2020-01-20 17:28:52 · 5229 阅读 · 1 评论 -
SpringBoot k8s部署
工作中需要将应用部署到k8s的集群上,之前是使用docker来部署的;这里使用service的nodePort的方式来访问;1.Deployment的配置apiVersion: apps/v1kind: Deploymentmetadata: name: powerflow namespace: powerflowspec: replicas: 2 selector...原创 2020-01-20 11:01:11 · 660 阅读 · 0 评论 -
Jpa 复杂查询
有时候需要通过Jpa进行复杂的查询,做个记录汇总,后面以便于可以进行查阅;1.首先Repository需要继承接口JpaSpecificationExecutor<T>,这里的T是具体的entity实例;这样就可以使用该接口提供的这些方法,进行复杂查询;相比JPQL,其优势是类型安全,更加的面向对象可以看到这个接口基本是围绕着Specification接口来的;2.Sp...原创 2020-01-07 15:39:18 · 1045 阅读 · 0 评论 -
hibernate.query.fail_on_pagination_over_collection_fetch 错误分析
起因是因为开发中遇到问题了报错,具体的截图如下所示所以后面搜索了下相关的内容,看到有一篇博客写的蛮不错的,地址是https://vladmihalcea.com/hibernate-query-fail-on-pagination-over-collection-fetch/来简单的陈述下原因:出错的hiberate版本是5.1.11;主要出错的原因是在获取实体的列表的时候分页...原创 2020-01-04 16:49:49 · 425 阅读 · 0 评论 -
Springboot集成rabbitmq
1>rabbitmq环境通过docker构建的rabbitmq容器;docker-compose 文件如下所示,其中,环境变量配置了rabbitmq的用户名和密码;version: '2'services: rabbitmq: image: rabbitmq:management-alpine container_name: rabbitm...原创 2019-05-27 18:59:22 · 219 阅读 · 0 评论 -
Springboot使用docker-compose实现动态配置
Springboot应用在打包的时候我们希望可以在项目启动的时候可以修改application.property或者yml中的配置;而不是在打包docker镜像的时候这个值确定后面不可以修改,这个时候可以通过yml提供的环境变量的功能来实现这个需求; 在yml文件中,通过${Envirment_variable}的方式可以获取系统环境变量中的值;于是可以通过把...原创 2019-06-01 19:30:15 · 10422 阅读 · 0 评论 -
Springboot集成rabbitmq 实现延时队列
延时队列的需求出现在消息需要延时处理的场景。比如下单之后在30分钟内不支付,超过时间,我们应该去修改订单的状态变成已取消,收回库存;或者设置了某个事情不需要现在处理,要一定时间段后去处理,这种情况都需要用到延时队列; 延时队列的实现方式有很多中,这里只介绍rabbitmq的实现方式;之所以rabbitmq可以做为延时队列是跟他的两个特性分不开的;1>Ti...原创 2019-06-01 23:46:56 · 5252 阅读 · 0 评论 -
SpringBoot 集成cas认证
之前一篇介绍了cas认证服务的整个流程;这篇文章Springboot框架里面如何整合cas实现整个认证的流程;1>首先引入Springsecurity cas的依赖jarcompile "org.springframework.security:spring-security-cas"2>配置CasSecurityConfig类@Configurationpubl...原创 2019-08-24 19:16:01 · 16497 阅读 · 2 评论 -
SpringBoot集成webservice服务
最近在做一个项目需要和客户进行服务的调用,而且客户只接收webservice的服务调用方式;所以记录下如何在Springboot 框架中集成Webservice对外提供服务;1.添加依赖支持 <dependency> <groupId>org.apache.cxf</groupId> <...原创 2019-08-22 21:29:30 · 7124 阅读 · 1 评论 -
Springboot Cas 认证的源码解析
上面文章介绍了Springboot如何集成Cas的认证,但是在写代码的时候有一些疑问:1)我们获取认证的内容的时候是SecurityContextHolder.getContext(),那么这里面的内容是什么时候放进去的,放进去的内容是什么?2)我们自定义的userDetailService获取的结果是如何使用的,跟Authentication有什么关系?下面带着这两个问题,跟着源码的...原创 2019-08-26 23:54:29 · 1403 阅读 · 0 评论 -
Docker 命令
总结一些Docker的常用的命令和一些用法,持续补充更新;这里以mysql镜像为例1.拉取镜像docker pull mysql默认会拉取最新的;如果要获取指定的镜像,在后面指定tag的名称;docker pull [OPTIONS] NAME[:TAG|@DIGEST]2.查看所有运行中的容器docker ps3.查看所有的容器,包括未运行的docker ...原创 2018-06-30 13:13:37 · 193 阅读 · 0 评论 -
java base64图片截图
需求:接收到其他服务发送过来的base64的图片,然后给了个截图的4个点的坐标,现在需要根据4个点的坐标,进行截图之后返回到前端去显示出来;主要使用BufferedImage的getSubimage方法;如下所示1>构造个对象封装下这几个参数,从其他服务中接受到数据格式为图片的四个点坐标的一个二维数组,需要转换为截图的点x坐标,y坐标,截图的宽度和高度;所以先封装个对象;通过一个二维...原创 2019-04-25 14:20:03 · 1062 阅读 · 0 评论 -
Springboot+websocket 单点推送
之前一篇文章通过demo简单介绍了下Springboot 集成 websocket发送消息;因为工作需要,所以深入了解了下具体的使用方法;主要详情讲一对一的消息发送;1.依赖环境配置前端是使用的angualr,需要引入sockjs-client和webstomp-client这两个库;具体package.json中配置,然后通过yarn install安装即可;如下所示后端使用使用...原创 2019-04-16 14:07:38 · 3125 阅读 · 1 评论 -
SpringSecurity授权流程源码解析
上篇文章分析了SpringSecurity基于用户名和密码的认证过程,这篇分析下授权流程;授权主要处理权限问题,比如说用户没有登录,如果直接请求某一个需要权限的接口,处理的过程是怎样的;1>.DelegatingFilterProxy 的doFilter方法这个是认证的过滤入口,最终调用的是FilterChainProxy的doFilter方法2>.FilterChainP...原创 2019-04-08 16:18:11 · 2664 阅读 · 0 评论 -
SpringBoot 三行代码实现图片上传和预览功能
fff原创 2018-05-14 23:31:30 · 27580 阅读 · 7 评论 -
Spring事务处理
事务是开发中经常遇到的一个问题,也是面试时经常问道的问题;1.事务的概念 事务是一组对数据库的操作,那么在对数据库进行操作的过程中,任何一步都可能会出错,因为此时业务系统的流程还没有走完,那么就希望回滚整个操作,需要执行数据库的回退操作;事务的作用就是保证每一个操作都是可靠的,事务中的每一步操作都执行成功,如果失败就回滚到最开始的状态;2.SpringBoot对事务的支持 在Sprin...原创 2018-05-22 22:26:03 · 341 阅读 · 0 评论 -
Springboot自动配置的原理
SpringBoot的自动配置依赖于EnableAutoConfiguration,这个注解导入了AutoConfigurationImportSelector原创 2018-06-11 22:35:40 · 420 阅读 · 0 评论 -
SpringBoot 集成gRpc Demo
SpringBoot集成grpc的demo项目,客户端通过grpc来调用服务端原创 2018-05-31 23:51:35 · 14183 阅读 · 1 评论 -
JWT
http状态保持原创 2018-06-24 21:50:33 · 1527 阅读 · 0 评论 -
Spring Cloud-服务网关Zuul
1.网关的引入 Spring Cloud微服务生态中,我们使用Spring Cloud Netflix中的Eureka实现了服务注册与发现;微服务之间通过Ribbon或Feign实现服务之间的调用以及负载均衡;通过Spring Cloud Config实现了应用多环境的外部化部署以及版本管理;为了使微服务集群更加健壮,使用hystrix的熔断机制避免某些服务出故障后引发的故障蔓延的情况;那么...原创 2018-07-08 12:17:27 · 1137 阅读 · 0 评论 -
使用hibernate-jpamodelgen生成jpa metamodel
刚到新公司,项目使用Jpa Model,编译各种报错,需要生成各种Course_这样的类,做个简单的记录;1>.需要使用到jar "hibernate-jpamodelgen-5.2.10.Final.jar",这个文件可以通过gradle放在项目目录中,当然,他们是发给我的;2> intellij -> Setting ->Annotation Processor...原创 2018-08-03 15:32:19 · 8301 阅读 · 0 评论 -
Redis 消息队列和发布/订阅
上篇文章介绍了Springboot集成redis的用法,这篇文章简单介绍下,Redis作为消息队列和发布订阅的简单的应用;如果系统中需要简单的订阅发布功能而系统中没有mq的话,可以考虑使用Redis;1.订阅/发布在redis-cli中可以使用publish来发布消息,使用subscribe来订阅消息;我们可以进行试验一下,在上篇文章中是使用docker启动了redis服务器的容器,可以启...原创 2018-09-02 16:31:50 · 9221 阅读 · 0 评论 -
Springboot intellij mapper not found的错误
工作中使用jhipster生成Springboot项目,但是遇到个问题,生成新的entity之后,再通过intellij的run/debug运行的时候报错提式找不到mapper了,但是通过gradle bootRun却是可以的;直接运行报错是这样的可以看下具体的build下的生成内容,如下图所示,mapper并没有生成对应的文件,所以会导致上面的情况;在网上找了很多没有找到对应的解...原创 2018-09-07 12:09:51 · 2442 阅读 · 0 评论 -
Java持久化 OneToMany,ManyToOne,OneToOne,ManyToMany
工作中遇到的了,然后在网上也看了很多人写的,感觉挺乱的,自己梳理总结下;1.OneToMany分成两种,一种是双向的,一种是单向的;比如车(Car)和 车主(Owner),这里假设,一个车只能有一个车主,一个车主可以有多个车;双向的关系:通过车可以找到车对应的主人,而通过车主,可以获取到车主名下所有的车信息;而如果是单向的一对多的关系:通过车主可以找到车主名下的所有车,却不能通过车反...原创 2018-09-18 18:15:17 · 941 阅读 · 0 评论 -
SpringBoot+docker环境变量配置
项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结:1.开发环境ide中启动项目可以通过ide的环境变量参数配置,启动之后使用哪个配置,比如这样就使用application-test.yml中的配置2.通过gradle打包可以通过-P参数来指定打包后的jar使用哪种环境来运行,比如gradlew -Pprod bootWar打包...原创 2018-10-30 14:14:40 · 18966 阅读 · 0 评论 -
SpringSecurity认证过程源码解析
一.认证过程认证过程,校验用户名和密码是否正确,如果校验通过设置用户信息到session中;涉及的类是UsernamePasswordAuthenticationFilter和AbstractAuthenticationProcessingFilter;1>请求的入口是AbstractAuthenticationProcessingFilter doFilter方法;代码如下所示...原创 2019-04-08 14:57:21 · 313 阅读 · 0 评论 -
Spring json忽略空值
jackson: serialization.write_dates_as_timestamps: false default-property-inclusion: non_null原创 2018-05-18 23:44:40 · 13009 阅读 · 3 评论