本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- kaizi1992
- xpenxpen
- jh108020
- 龙儿筝
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
注解的理解
注解
1,进入定位标记 ,
2, aop定位生成代理 编译的时候生成
3,类似mybatis的dao,daoimpl自动编译的时候实现
注解实例化时调用属性的过程就是调用生成的代理类过程---注解本身原理是动态代理原理
注解结合aop实现业务方法的动态代理
例如
HystrixCommand(业务方法上) 注解 会配合一个HystrixCommandAspect切 ...
stream聚合流
stream聚合流通过map返回实体的某个属性,由于本源是list所以返回的是这个属性的list:
------------------------------foreach 返回的只能时同种类型
---------------------map 返回的可以时其他类型
List<String> sqlTpaa= itan.stream().map(i -& ...
JAVA两种代理模式
总括:
代理实现的基本思路:(aop原理)现在直接用aop的多
1,实现相应的代理接口(jdk--invocationHandle,cglib---MethodInceptor)
2,定义获取代理实例方法
3,重写代理组合执行的方法
jdk--实现接口类的实现类才可生成此代理
cglib--任何实现类都可生成此代理
应用的时候:
先根据需要生成代理的 ...
表连接合成大表之后不要别名
连表语句在用大括号括成一个整体的时候就是一张表,不需要再加表别名区分表查字段:
SELECT day FROM
(SELECT m.*, s.* FROM cms.daily_new_client88_master m LEFT JOIN cms.daily_new_client88_slave s on m.event_id= s.event_id) T
WHE ...
SpringBoot几种定时任务的实现方式
定时任务实现的几种方式:
Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。
ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是 ...
实现配置化定时任务几种思路
可配置化的定时任务实现思路:
配置化的思路就是
思路一:页面维护入库,调用公用的工具类加入任务的组装即可---quartz(配置化核心)---优点,页面配置好一个,工具类就组装好一个--这种也需要在启动的时候开启所有已有的配置
页面增加维护定时任务,开始就是按照调度工厂,触发器,任务去组装即可,去除任务就是反之---页面配置用状态标识
加入后按 ...
文件流的操作
任何文件都可以转化成流直接操作,或者流再转化成该格式对应的类实例操作
public static void loadAllFromYaml(String yamlPath) throws Exception {
if (StringUtils.isEmpty(yamlPath)) {
return;
}
F ...
JVM——自定义类加载器
总括:
不同的加载器加载不同的目录下的文件,需要哪个类被哪个加载器加载只要在哪个目录下放置即可
当为了防止反编译对非常规的加密的字节码加载,此时需要自定义加载器先解密,然后正常加载---此时用就自定义加载器
loadClass=findClass(包含defineClass)
findclass中通过类的路劲获取到类的字节码(getclass),然后defineClass ...
https原理
概括:
https就是结合这两个特性为一体的:
用非对称加密加密,解密对称加密的密钥。用对称加密的密钥加密内容---------对称加密的速度块可加密长的内容
单用对称加密接入的客户端多了容易泄露
每个客户端不同的对称密钥,线下协商密钥还好,一旦线上协商也会被截取密钥(本文考虑的是线上问题)---中间拦截问题,
还是需要线上给的话就只能用ssl证书和ca机构,在s ...
悟空crm管理系统部署
悟空crm管理系统部署
初始化脚本,修改数据库,redis配置
两种启动方式:
1,jar
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal-undertow</artifactId>
< ...
线程池使用思想及实例
线程池的使用方法:
1,抽象类中新建ThreadPoolExecutor线程池
2,写一个方法里面根据线程池数判断是否用线程池,线程池最大线程未满时用线程池执行任务
3,子类中用一个方法新开一个线程@Async,这个线程中调用抽象类中的用线程池的方法--只起启动作用,所以这里判断线程池活跃的为0就说明目前线程池任务一个
都没有启动,此时启动
用于拆分批量处理问题(多核有效)
...
spring4(springboot)的多数据源配置
1,用切面的方式注解区别,在切面中切换执行的数据源
2,不同的文件夹不同的mapper扫描,不同的mapper不同的数据源模板
下面是2实例:
1 使用mybatis注解需要的配置。如下面的代码所示,使用@MapperScan来扫描注册mybatis数据库接口类,其中basePackages属性表明接口类所在的包,sqlSessionTemplateRef表明 ...
java心跳实现思路
websocket,一个用户一个socketsession,用相应的session发送消息就相应的用户获取消息-------------应用层面(页面做)
socket,传输层底层用的是tcp,一般直接用netty代替
http一次性请求,socket一次发起一直监听,直到任意一方主动退出
心跳就是:(定时的通信)
1,服务端不断轮询客户端
2,客户端不断请求服务端
服务端根据 ...
对称加密和非对称加密
github首页:区块链学习有用链接和25本区块链书籍可免费阅读,觉得有用就fork或是star
地址:https://github.com/cancerts/study-blockchain-referrence 点击这
数 ...
synchronize原理
目录
synchronized的三种应用方式
synchronized的字节码指令
synchronized的锁的原理
Java对象头
Monitor
synchronized锁的优化
自旋锁与自 ...
看完就明白_spring事务的7种传播行为
事务传播行为
什么叫事务传播行为?听起来挺高端的,其实很简单。
即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。
事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。
例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢 ...
数据库事务4种隔离级别及7种传播行为(三)
一、隔离级别:
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。
1. ISOLATION_READ_UNCOMMITTED:这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据。 这种隔离 ...
FutureTask获取线程返回值原理、源码分析
先看一段FutureTask获取线程返回值简单应用的代码,以下基于jdk8进行源码分析。
package com.lanhuigu.demo.createthread;
import java.util.concurrent.Callable;
import ...