- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 Hive jdbc 连接数据库 建表操作
import org.junit.Test;import org.junit.After;import org.junit.Before;import java.sql.*;public class HiveJDBCTest { private static final String driverName = "org.apache.hive.jdbc.HiveDriver";// private static final String url = "jdbc:hive2://.
2022-04-25 18:00:17
884
原创 token 工具类,token 认证,鉴权,springcloud zuul
package cn.com.citydo.credit.api.utils;import cn.com.citydo.common.exception.BizException;import com.alibaba.fastjson.JSON;import io.jsonwebtoken.Jwt;import io.jsonwebtoken.JwtBuilder;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlg.
2020-09-01 11:50:50
522
原创 springcloud ,springcloud alibaba ,springboot 工具组件应用
什么是Spring Cloudspring cloud 是一个快速构建分布式系统的工具集<提供了一系列分布式开发的工具>官方文档(https://spring.io/projects/spring-cloud#overview)功能 翻译 选择 Distributed/versioned configuration 分布式/版本化配置管理 Spring Cloud Config,Consul,Nacos,Zookeeper Service regist
2020-09-01 11:50:09
399
原创 Java 跨域配置类
@EnableWebMvc@Configurationpublic class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { // 设置允许跨域的路径 registry.addMapping("/**") // 设置允许跨域请求的域名 .allowedOri.
2020-08-27 13:57:22
1170
原创 mysql 数据库,数据库引擎 , 事务隔离级别 ,mysql 锁
1.mysql数据库引擎:如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果mysql 默认是InnoDB引擎 ;。MySQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎..
2020-08-27 10:17:36
142
原创 redis 锁应用
在多线程处理业务中,容易出现数据重复执行,报错情况redisLock工具类:一定要有锁的持有者,不然在多线程下,就容易出现问题/** * 获取redis锁 * * @param lockKey 锁标识 key * @param requestId 锁的持有者,加锁的请求 * @param expireTime 锁过期时间 * @return */ public static boolean getLock(String lockKey,..
2020-08-19 17:29:05
224
原创 Synchronized 修饰静态方法和非静态方法 ,对象锁和类锁的区别
Synchronized 修饰静态方法和非静态方法,对象锁和类锁的区别Synchronized 修饰非静态方法的锁,其实是属于当前对象的锁,属于对象锁Synchronized 修饰静态方法的锁,其实是属于当前类,属于类锁 ,类锁是一个抽象概念,为了区别对象锁亲自测试得出结论:package com.citydo.dataengine.config.scheduled;/** * @Author:yuess * @Description: * @Date:Create ...
2020-08-19 17:00:17
1112
原创 线程池应用,四种常用线程池源码解析
进程:每个程序有一个独立的进程,而进程之间是相互独立存在的线程:进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。创建线程的两种方式:1.继承thread类 ,调用start方法,重写run方法2.实现runable接口,重写run方法实现Runnable接口避免了单继承的局限性,所以较为常用线程池:线程池主要用来解决线程生命周期开销问题和资源不足问题线程池原理:当提交一个任务时,线程池创建一个新线程执行任务...
2020-08-19 11:13:57
300
原创 jvm 内存模型及垃圾回收过程
1.jvm 内存模型pc寄存器:行号指示器,字节码解释器工作时就是通过改变这个计数器的值,来选下一条字节码指令,比如分支,循环,跳转,异常 处理,线程恢复等基础功能靠这个计数器来完成。ps:由于java的多线程是线程轮流切换的,一个处理器同一时刻只会执行一条线 程 (用来记录代码执行到哪里)虚拟机栈:一个线程执行会有至少一个方法,没当线程进入一个方法,会在虚拟机栈创建一个栈帧,用于存储局部变量表(基本7种数据类型,对象引用)、操作帧,方法出 口等信息。每一个方法被调用即入栈,完成即出栈 ,.
2020-08-11 17:02:33
636
1
原创 springboot 热部署
简述热部署就是在服务器运行时重新部署项目,——生产环境 热加载即在在运行时重新加载class,从而升级应用。——开发环境原理热加载的实现原理主要依赖java的类加载机制,在实现方式可以概括为在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。对比反射机制,反射是在运行时获取类信息,通过动态的调用来改变程序行为;热加载则是在运行时...
2019-07-05 11:26:05
589
1
原创 Java8 新特性
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多...
2019-06-25 15:49:15
154
原创 gitlab 统计代码贡献量
来源:https://www.2cto.com/net/201906/811290.html 超详细命令,照着敲就可以。注意几个地方:1.切换到工程下面,需要一个git环境mkdir -p /opt/git ,创建git项目文件夹 git init git clone -b develop http://xx.xxx.xxx/credit...
2019-06-18 11:39:33
34102
6
原创 git 上传本地代码到 gitlab
前提电脑上有git bash1.在源码根目录,右键 git bash here2.命令行git config --global user.name "less"git config --global user.email "less@qq.com"git initgit remote add origin ssh://git@域名/tyshawn/sdap1...
2019-06-14 14:59:30
1161
原创 jenkins ,git ,maven ,sonarqube 集成,自动部署扫描代码
作为一个比较少接触到部署的人,这个文档应该可以帮助到大家,。。。踩坑太多,运维也是一门技术1.部署sonarqube首选sonarqube ,为了偷懒选择docker部署docker run -d --name sonarqube -p 8100:9000 -p 8111:9092 --link=citydo-mysql:mysql -e SONARQUBE_JDBC_USERNA...
2019-06-10 11:04:50
597
原创 以太坊和智能合约
以太坊的核心概念 以太坊核心概念包括:智能合约虚拟机 EVM 和 Solidity 编程语言、账户模型、以太币和 Gas, 交易和消息。1. 智能合约虚拟机 EVM 和 Solidity 编程语言 以太坊的核心概念首先是智能合约。智能合约包含两部分,一部分是开发语言,主要以 Solidity 为主,Solidity 与 Javascript 语言 在使用上十分接近,这极大地降低了 Dapp 开...
2019-05-27 18:37:37
630
原创 区块链技术调研
全球已经兴起了多个基于区块链的数字身份项目,侧重点各有不同,值得关注的项目有uport、Civic、Evernym、AirPlatform、Indy、SelfKey等,认识和挖掘这些项目可以帮助我们数字身份的应用形态。(1)uport是基于以太坊的自主权身份ID应用,它可以允许用户身份验证、无密登录、数字签名并和以太坊上的其它应用交互; (2)Civic是一个基于区块链和生物识别的多因素身份...
2019-05-23 16:57:14
3529
1
原创 docker 部署ui for docker
Docker Web管理工具docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker可以查看日志 ,端口 ,环境配置 ,内网ip
2019-05-23 16:37:00
598
原创 IDEA 常用的快捷键
eclipse用了三年,决定还是熟练使用一下idea了,idea常用的快捷键,不常用就算了1、一次性添加多行注释的快捷键首先选中要注释区域,然后ctrl+/: 这个是多行代码分行注释,每行一个注释符号ctrl+shift+/:这个是多行代码注释在一个块里,只在开头和结尾有注释符号2、取消多行注释快捷键怎样添加快捷键的,用相同方法取消,如ctrl+/:添加注释,则...
2019-05-21 14:13:08
191
原创 docker 同一个tomcat镜像部署两个不同端口的tomcat 容器
1.查看历史命令:history|grep cp2.查看镜像:dockerimages3.启动tomcat镜像【fabric8/tomcat-8】docker run --name mytomcat1 -d -p 8081:8080fabric8/tomcat-8docker run --name mytomcat2 -d -p 8082:8080fab...
2019-04-01 21:37:31
1587
原创 docker 部署Oracle
1.首先拉取Oracle镜像https://hub.docker.com/ ,第二种方式,私人镜像在中央仓库只保留30天,我发现这次拉取的时候资源不存在,问了运维大佬,才知道,把保留的镜像tar包迁移部署2.bulid oracle 镜像 Dockerfile文件 rebulid.sh文件bulidOracle镜像...
2019-03-18 18:12:38
1167
原创 list.remove 的陷阱
list 的数据结构是数组结构,并且物理存储结构是连续存储,在删除的时候,如果是使用for循环方式,会出现删除报错,或者,删除时,由于list删除一个索引对象后,后面的索引会复制到前面,这时候循环删除的时候就乱了,List调用remove(index)方法后,会移除index位置上的元素,index之后的元素就全部依次左移,即索引依次-1要保证能操作所有的数据,需要把index...
2019-03-15 17:38:03
286
原创 Kyin 入门学习
1.Kylin简介Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。2.Kylin 优势3.事实表和维度表事实表(Fact Table)是指存储有事实记录的表,如系统日志、销售记录、传感器数值等;事实表...
2019-03-08 11:20:04
1560
原创 数据库 redis 一致性问题
场景:数据库更新,redis 没有更新,查到的数据不一致,而且redis的值来自于几张表表的逻辑组合,因此任何一张表的增删改都影响redis 数据库一致性的问题。 但是因为并发量小,redis 的值逻辑较多,因此,只需要在更新数据库之后,删除redis缓存的值,为了可以适用其他场景,做了一个切面封装,通过注解方式统一处理redis值的问题 采取springboot...
2019-02-27 15:35:13
315
原创 树的层级关系解析
1.创建节点对象 Nodepackage cn.com.citydo.supervise.service.util.tree;import java.util.LinkedList;import java.util.List;public class Node { /** * 节点id */ private String id; /** ...
2019-01-03 11:27:00
1378
原创 docker 上传图片到nginx 容器里面,域名访问图片路径
业务需要,需将base64的字符串转成图片放入服务器因为用到docker容器首先进到应用容器第一步:查看rebulid.sh文件第二步:编辑文件 rebulid.sh文件docker 外面 和里面 映射v /root/docker/nginx/html/image:/root/docker/nginx/html/image最重要的一句:起作用的一句:v ...
2018-11-07 18:10:26
2249
原创 Docker 学习笔记
查看日志: docker logs -f 系统名称本篇的主要目的是进入docker 的mysql 容器查看docker ,进入mysql1.第一步:查看docker 里面的所有容器docker ps -a2.第二步:进入mysql 容器启动镜像docker start #contailner_id#3.第三步:进入镜像image-m...
2018-10-31 17:32:25
185
原创 springboot工具类注入service 类
springboot工具类注入service 类@Componentpublic class FileUtils { @Autowired private PropertiesUtil properties; @Autowired private INewsInfoTableService newInfoService; private static INewsInfoTab...
2018-09-11 16:28:28
1960
2
原创 PowerDesigner 连接MySQL数据库
连接Mysql数据库时,会出现连接不上的问题,PowerDesigner 连接Mysql 需要安装mysql-connector-odbc-5.3.6-win32.msi,如果是64位的jdk,安装64位的odbc 软件会一直报没有管理员权限,1.odbc安装完成后,配置odbc数据源2.找到安装的odbc软件,在控制面板配置添加odbcad32.exe3.打开PowerD...
2018-08-31 15:35:58
967
1
原创 spring 拦截器
拦截器实现对每一个请求处理前后进行相关的业务处理,类似于Servlet的Filter,可以让Bean 实现HanlderIntercepter接口或者继承HandlerIntercepteorAdapter 类来实现自定义拦截器AppPermissionInterceptor 拦截器@Component@Slf4j@PropertySource("classpath:applicatio...
2018-08-29 18:13:58
217
原创 Java基础面试题
1.java中四种修饰符的限制范围访问权限 本类 本包 不同包子类 不同包非子类 public √ √ √ √ protected √ √ √ default √ √ private √ 2.动态代理的两种方式,以及区别。...
2018-08-29 17:33:32
154
原创 RBAC(Role-Based Access Control,基于角色的访问控制)
最经典常用的小型网站的权限机构设计,权限5张表如果考虑到用户量过多,如果一个个用户加权限,则会非常繁琐这时可以考虑给用户分组,一个用户在一个组,一个用户组可以有多个角色,单个用户也可以有自己的特殊角色,因此。一个用户所有角色:用户角色+用户组所拥有的角色 如果权限粒度分的更细,则需要给权限功能分类 ...
2018-08-24 17:14:12
631
原创 Spring 框架 AOP的原理及应用
AOP:面向切面编程,相对于OOP切面编程Spring的AOP为了解耦,AOP可以让一组类共享相同的行为Spring支持Aspect声明的注解式切面编程下面的代码示例:为了解决在执行某个方法时,需要切换数据库@Aspect@Componentpublic class DataSourceAspect { @Before("execution(* cn....
2018-08-23 16:37:51
191
原创 Spring 框架之IOC DI的理解思想
spring框架是一个轻量级的企业级开发的一站式解决方案。spring是模块化的,意味着你只需要使用你需要的模块spring框架四大原则:1)使用pojo进行轻量级和最小入侵式开发2)通过依赖注入和基于接口编程实现松耦合3)通过AOP和默认习惯进行声明式编程4)使用AOP和模板(template)减少模块化代码依赖注入:我们常说的控制反转和依赖注入在s...
2018-08-23 13:47:30
1038
原创 springboot +mybatis+pageHelper 整合
目前Pagehelper插件支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页,不同数据库只需要修改helperDialect就行。1.pom.xml文件配置jar包 <!--分页插件--> <dependency> <groupId>com.gith...
2018-08-22 17:40:58
606
原创 springboot 整合redis ,在项目启动时加载redis缓存
因为在项目中,会有字典表,机构表,用户表,这些一般情况下,数据发生改变的的概率比较小,而且经常涉及到查询,转码,查询数据库的频率较高,因此在项目启动时将这些数据表加载到缓存中,以便使用。redis是一种高级的key:value存储系统,其中value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有序字符串集合(sorte...
2018-08-22 17:12:38
24311
7
原创 Ajax +json
AJAX:通过异步请求的方式,实现页面的无刷新式提交,实现页面局部数据的更新。步骤: 1. 创建 XMLHttpRequest 对象 xhr 2. 给xhr.onreadystatechange事件绑定回调函数,以指定当xhr对象状态改变时,由哪个js函数来处理 3. 建立与服务器的连接 4. 发送请求 1、 var xhr = new
2016-08-18 11:12:06
161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人