9 qianggetaba

尚未进行身份认证

博客好强大!注意保护视力!

等级
博文 214
排名 1k+

springboot hibernate jpa createNativeQuery使用原生sql查询并转换为pojo的model对象,方便好用

先把entityManager.createNativeQuery生成的jpa接口的Query强转为hibernateQuery的query然后就可以调用hibernate的方法,设置属性,返回的list结果就是Map<String,Object>的有列名称columnName的对象然后用jackson的ObjectMapper().convertValue把map转换为po...

2019-06-24 19:21:17

快速查看springboot项目的所有自启动执行方法

对于RestController可以访问地址,出发调用,但是自启动的类方法,在本地调试时,有时候会捣乱,输出大堆日志,修改数据等等以下是总结的springboot项目的常见自启动方式@Scheduled(fixedRate=5*60*100)定时的cron时间特别短@Scheduled(fixedRate=30*60*1000)继承CommandLineRunne...

2019-06-13 10:58:16

springboot中jpa5使用多数据源

多数据源配置后,由于entityManage与DataSource是绑定的,@EnableJpaRepositories注解绑定repository目录与entityManage,所以使用Jparepository时会自动使用对应的数据源。暂时交叉库查询没有,可以使用原生本地sql查询,下面有测试用例注意,主数据源配置@Primary,不然启动报错//启动类上面@SpringBootApp...

2019-06-06 09:35:58

借助JDK8函数式轻松实现JPA原生sql转换为普通pojo或dto等model对象

jpa有原生sql查询,.createNativeQuery(sql).getResultList(),但是结果转换需要是Entity才行,对于普通model对象需要自己每次循环list遍历,很不方便借助函数式编程Function,方便快速实现结果转为普通model对象importlombok.Data;importlombok.experimental.Accessors;impo...

2019-05-30 14:31:30

BEGIN OPENSSH PRIVATE KEY---invalid fomat

这是生成的key格式不同,新的openssh的格式-----BEGINOPENSSHPRIVATEKEY-----b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn...-----ENDOPENSSHPRIVATEKEY-----转换安装git后,右键打开gitbashputt...

2019-05-28 08:18:20

ReentrantLock与Condition实现生产者消费者,模拟延时用LockSupport.parkNanos

使用ReentrantLock与Condition实现生产者消费者主要有Producer,Consumer,Pool生产池在测试多线程程序时,最后【多建线程】才能明显看出并发时,是否数据异常。建议10到30个线程创建的线程数少,模拟的延时太高,多线程可能会依次执行,不能判断是否线程安全Pool生产池,封装也生产与消费的方法,注意里面的【while循环】判断Pool是否满或者空,负责会产出...

2019-05-10 16:56:31

完全看懂CAS之JDK并发包JUC里cas使用volatile变量自旋的乐观锁模式解决多线程单变量同步问题与CAS缺点ABA资源消耗

当谈到cas解决多线程同步问题,看一个人有没有真正理解cas,不是听他说cas就是使用cpu机器指令比较前后值完成设置保证了原子性,这样基本就是百度百出来的,根本没有好好理解cas的真正过程【cas要点】cas方法中的同步变量【必须】是volatile类型cas自旋(死循环),判断值前后变化来保证多线程中的值同步JUC就是jdk并发包【目录简称】以AtomicInteger内部源码举...

2019-05-09 19:55:00

使用spring的异步模式@EnableAsync与@Async配合Future与AsyncResult实现异步调用服务并行,也可以并行sql查询加速系统

springboot项目服务类上注解@EnableAsync开启扫描方法上的@Async注解,当其他bean调用这个被@Async注解的方法时,spring会通过代理,在子线程里执行,达到异步调用与并行执行的目的【注意】不能在类内部(bean内部,spring无法感知)调用@Async(就是要),spring无法感知到,所以不会再子线程执行@Async生效需要一个bean(con...

2019-05-09 15:11:56

java static静态块,普通块,静态属性,内部类,内部静态类,内部子类,构造块,辨析与实例初始化执行顺序

因为main所在的类会在jvm启动时,自动被加载,所以写在另一类做测试。//Test.javapublicclassTest{publicstaticvoidmain(String[]args){newPeople();newPeople();//System.out.println(People.name);...

2019-05-01 21:36:12

@ExceptionHandler不管用 spring security oauth2 自定义异常拦截InternalAuthenticationServiceException

由于springsecurity的认证filter,使得认证异常不能通过DispatcherServlet,所以@ExceptionHandler处理不到需要自定义资源服务异常处理过程resources.authenticationEntryPoint与resources.accessDeniedHandler,可以拦截并自定义处理//AuthenticationEn...

2019-04-26 20:52:50

springboot集成springsecurity 使用OAUTH2做权限管理

SpringSecurityOAuth2主要配置,注意application.yml最后的配置resourcefilter顺序配置,不然会能获取token但是访问一直没有权限WebSecurityConfigurerAdapter所在服务器的web配置AuthorizationServerConfigurerAdapter认证服务器配置...

2019-04-25 19:41:44

springboot集成springsecurity简单权限管理与logout退出,@AuthenticationPrincipal

springsecurity主要是认证(密码登录)与授权(角色权限管理)下面一个简单项目例子,使用springsecurityMyUserDetailsService#loadUserByUsername用户登录SecurityConfig#configure配置springsecurity行为Controller中的@PreAuthorize就是用户权限对照上图看,权限...

2019-04-24 18:53:22

java函数式编程理解与接口Consumer,Predicate,Function使用,@FunctionalInterface注解

面向对象(抽象数据,思考数据怎么做,编程时考虑数据怎么处理,比如打印一个什么数据)函数式编程(抽象行为,思考什么要做,考虑对这个数据做什么,比如对数据的操作就是打印)java函数式编程接口很多,Consumer,Predicate,Function等等,都是被@FunctionalInterface注解的,可以lambda表达式传参数importjava.util.functio...

2019-04-11 14:07:52

java重写equals与hashCode,方便实体类如model,entity,pojo等安全存放于map,set中

java开发经常用到实体类作为orm层的数据交换对象,但是没有重写equals与hashCode会导致,在使用诸如set,map时的重复排序错误等等问题,所以equals与hashCode更有利于业务代码,方便使用map,set做去重,排序等等注意,equals与hashCode中对于实体唯一性的判别,有时候只看id是否一致(实体id唯一性),有时候是多个属性决定唯一实体(id,name不能两个...

2019-04-01 13:50:13

zookeeper理解与总结

zookeeper类似linux的文件系统,由根“/”开始的路径,叫做节点znode,znode下可以有子节点,每个节点可以有数据节点znode的类型有:永久的,临时,永久且有序,临时且有序。有序就是create创建节点时如果已经存在,就在后面的计数增加,类似windows的文件重名时的副本2,3等等节点操作有:create创建,get读取,set修改,delete删除当前节点,不能有子节...

2019-03-30 16:21:25

使用Apache Curator包实现基于zookeeper的分布式锁与验证

ApacheCurator包是对zookeeper的javaAPI的包装,使我们更方便使用分布式锁,分布式锁是使用zookeeper的【临时】【有序】节点特效来完成的Curator分布式锁过程: 1.先设置分布式锁在zookeeper中的路径/curator/lock 2.mutex.acquire()获取锁,失败抛异常, 先看当前线程是否已经获取过锁(可重入),若有锁了,就增加获...

2019-03-30 14:34:05

使用zookeeper的java API操作zookeeper集群--maven项目

maven项目,纯javaapi使用zookeeper集群//pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...

2019-03-30 13:54:28

简单粗暴快速高效vmware搭建Zookeeper集群,使用centos7 minimal镜像,链接克隆

简单粗暴快速高效vmware搭建Zookeeper集群,使用centos7minimal镜像,链接克隆安装vmware下载centos7minimal镜像,DownloadCentOS自己新建虚拟机安装,期间只设置时区与root密码,20g空间,单磁盘文件,1核cpu,1g内存够用了,使用全部磁盘默认系统自动分区,安装完重启正常到login:登录就好,试试root密码登...

2019-03-30 12:04:46

java对快速排序算法的理解和两种实现

快排过程:先找一个支点(pivot),然后一趟排序把数组划分为,左小于<pivot的,pivot点,右大于>pivot的三部分,然后对左右继续找支点,划分,递归,直到左右完成。看sort(),就是这个意思本代码有两种实现快排partition1实现过程lowhigh为要排部分数组收尾,选第一个元素为支点从数组收尾分别遍历尾部小于支点的移动到arr...

2019-03-27 20:37:07

java使用treemap做词频统计wordcount(字母排序alphabet和词频排序descending freq.)

importjava.util.*;publicclassTest{staticList<Map.Entry<String,Integer>>getWordInDescendingFreqOrder(Map<String,Integer>wordCount){//Convertmaptolisto...

2019-03-27 14:23:00
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。