自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 【Spring源码】createBeanInstance()

目录创建实例-createBeanInstance有参构造-autowireConstructor无参构造-instantiateBean实例化策略-instantiatecreateBeanInstance英文版autowireConstructor英文版instantiateBean英文版instantiate英文版位置 protected Object doCreateBean(String beanName, RootBeanDefinition mbd, @Nullable Object

2022-01-06 21:36:16 431

原创 【Spring源码】doCreateBean()

目录简易版中文注释版英文版简易版 protected Object doCreateBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) { // 实例化bean BeanWrapper instanceWrapper = createBeanInstance(beanName, mbd, args); // 属性填充 populateBean(beanNam

2022-01-05 21:25:46 388

原创 【Spring源码】createBean()

目录1、resolveBeanClass()2、prepareMethodOverrides()3、resolveBeforeInstantiation()1)applyBeanPostProcessorsBeforeInstantiation()2)applyBeanPostProcessorsAfterInitialization() protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable Ob

2022-01-03 21:16:21 383

原创 【JDK8】default

目录官方文档default static多个默认方法官方文档https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.htmlhttp://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf接口可以有实现方法,而且不需要实现类去实现其方法。Java 8中出现,接口添加default方法,不强制实现了该接口的类也实现这个新加的方法效率高:在字节

2021-12-01 22:35:54 844

原创 【工具类】工具类中使用@Autowired

@Componentpublic class Util { private static String b; @Autowired private String a; @PostConstruct public void init() { b = a; }}@Componentpublic class A { @Autowired private B b; public static A a;

2021-12-01 22:33:48 227

原创 【多线程】Executor

目录一、Executor框架两级调度模型框架结构框架成员二、ThreadPoolExecutor1、FixedThreadPool 可重用固定线程数2、SIngleThreadExecutor 单个工作线程3、CachedThreadPool 根据需要创建新线程三、ScheduledThreadPoolExecutor执行周期任务DelayQueue.take()DelayQueue.add()四、FutureTask 异步计算的结果使用实现级联唤醒一、Executor框架工作单元 Runnable C

2021-11-30 22:52:05 558

原创 【多线程】ThreadLocal

目录简介底层setget回收简介线程变量,以ThreadLocal为键,任意对象为值的结构,这个结构被附带在线程上,一个线程根据一个ThreadLocal对象查询到绑定在这个线程上的一个值本地线程。线程的局部变量。只有当前线程可以访问。线程安全的。set()设置,在当前线程下get()获取到原先设置的值public class Profile{ private static final ThreadLocal<Long> TIME_THREADLOCAL = new ThreadL

2021-11-29 21:37:38 153

原创 【工具类】解析.log文件

目录解析每一行并处理中文获取最后一行的文本获取最后一行的位置解析每一行并处理中文 RandomAccessFile randomFile = null; try { // 指定文件只读r。可读可写rw randomFile = new RandomAccessFile(logFile, "r"); // 日志原文 String logSource = "";

2021-04-20 14:25:51 514

原创 【Mybatis】resultMap

目录类型别名`typeAliases`处理返回值为空,不映射的问题字段映射result构造方法constructor关联一个对象association关联多个对象collection自动填充关联对象 <select id="findAll" resultType="User"> select * from user <select id="findAll" resultMap="userRM"> <resultMap type="User" id="user

2021-04-20 10:20:04 186

原创 【Spring源码】BeanPostProcessor

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory八次调用时机1、是否需要代理resolveBeforeInstantiationInstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation2、推断构造函数determineConstructorsFromBeanPostProcessorsSmartInstantiati

2021-04-17 16:16:04 57

原创 【Spring源码】循环依赖(循环引用)

一、仅支持单例,非构造方法注入二、有个建模的类,叫BeanDefinition,由BeanDefinition构建产生Bean三、容器启动、扫描、变成BeanDefinition,存到BeanDefinitionMap中,遍历、验证、是否:单例、原型、抽象、懒加载、有DepensOn、factoryBean创建之前先去单例池当中是否存在有没有被创建,有就去二级缓存,有没有被提前暴露,没暴露Bean就开始创建首先通过推断构造方法得到最佳的构造方法,通过反射实例化一个Java对象,根据对象初始化Be

2021-04-17 16:15:19 73

原创 【Spring源码】Spring流程

1、初始化AnnotationBeanDefinitionReader2、初始化ClassPathBeanDefinitionScanner3、执行register(),注册配置类4、执行refresh(),先初始化比如BeanFactory这类基础的容器5、执行invokeBeanFactoryPostProcessors(),主要扫描包和parse (类—>beanDefinition)6、注册beanPostProcessor,国际化等等7、将BD变成bean的方法 finishBe

2021-04-17 16:14:14 81

原创 【List】字段排序

目录单个字段排序多个字段排序list集合根据时间字段排序单个字段排序voList.sort((x, y) -> Double.compare(x.getAge(), y.getAge()));多个字段排序voList.stream().sorted(Comparator.comparing(DayVo::getAge).reversed() .thenComparing(DayVo::getCount, Comparator.reverseOrder()))

2021-04-16 10:15:56 137

原创 【ES】QueryBuilder构造ES查询条件:精准匹配、模糊搜索、范围查询、and、or

private QueryBuilder getQueryBuilder() { // termsQuery("key", obj1, obj2..) 一次匹配多个值 // matchQuery("key", Obj) 单个匹配, field不支持通配符, 前缀具高级特性 // multiMatchQuery("text", "field1", "field2"..); 匹配多个字段, field有通配符忒行 /...

2021-04-09 11:55:27 7449

原创 【List】多字段分组

// 分组Map<String, Map<String, Map<String, Map<String, Map<String, List<DmsDatabaseOpLogStats>>>>>> countMap = logCountList.stream().collect( Collectors.groupingBy(DmsDatabaseOpLogStats::getDatabase, Collectors.grou

2021-04-09 10:17:22 303

原创 【ES】多字段聚合分析

public static Map<String, Map<String, Map<String, Map<String, Map<String, Long>>>>> getTermsAggFiveLevel(String field1, String field2, String field3, String field4, String field5, String... indexs) throws IOException {

2021-04-09 10:11:42 1017

原创 【工具类】double

//默认除法运算精度 private static final int DEF_DIV_SCALE = 10; //默认的保留位数 private static DecimalFormat df = new DecimalFormat("0.00"); /** * 提供精确的加法运算。 * * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ pub...

2021-04-07 10:30:03 129 1

原创 【ES】补充RestHighLevelClient

目录依赖获取连接,阿里云提供的API创建Index创建mappingsXContentBuilder删除数据,指定ID依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.4.1</version

2021-03-31 15:57:44 80

原创 【ES】索引创建,为“非查询字段”不建索引 index store

目录创建索引PUT /索引的名字{ "mappings": { "properties": { "xxx1属性": { "type": "该属性的类型" }, "xxx2属性": { "type": "该属性的类型" } } }}ES客户端:PUT /索引的名字Linux:curl -X PUT “localhost:9200/commodity?pretty”Postman:PUT htt

2021-03-31 15:55:52 2057

原创 【ES】返回数量只有默认的1W,太少

2天1500W的数据量,如果只显示默认的1W,太少现状:在hits - total - value 中显示默认的1W{ "took" : 2, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 10000, "re

2021-03-31 10:11:36 297

原创 【ES】Elasticsearch-7.4.1-spring-data-elasticsearch

目录依赖application.properties实体类持久化层业务层控制层SpringBoot 2.2.0.RELEASE才兼容elasticsearch 7.xSpringBoot的,使用更方便,但是版本限制依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte

2021-03-30 17:57:05 242

原创 【ES】Elasticsearch-7.4.1-RestHighLevelClient

目录依赖初始化连接总览查询创建索引,并新增一条批量插入数据查询多个ID的数据根据id修改数据:跟据id查询一条千万级数据在PostgresSQL数据库中,查询有点慢,换了Elasticsearch,搜索速度很快SpringCloud版本固定,只能适配,所以采用RestHighLevelClient关闭连接:restHighLevelClient.close();依赖<dependency> <groupId>org.elasticsearch.client&lt

2021-03-30 17:42:09 425

原创 【并行流】parallelStream

适合:不考虑排序问题而且数据量比较大坑:遍历的集合少数据,并且会在多次重复遍历的时候数组越界原因:遍历之后转成的List非线程安全解决:遍历的结果转成的list进行包装List<Integer> synchronizedList = Collections.synchronizedList(parseList);List:synchronizedListMap:synchronizedMapSet:synchronizedSet字符串:StringBuffer 线程安全.

2021-03-30 15:33:28 161

原创 【jar包】java -jar 启动服务,断开服务器连接或者关闭窗口后,服务停止

解决办法:nohup java -jar XXX.jar >log.file &最后的&:在后台运行。只能避免打断后程序停止,无法避免关闭当前窗口最前面的nohup:不挂断运行命令,当账户退出或终端关闭时,程序仍然运行输出到log.file文件中,不添加则默认到nohup.out文件中nohup java -jar XXX.jar > log.file 2>&1 &0 标准输入(一般是键盘)1 标准输出(一般是显示屏,是用户

2021-03-30 15:21:45 1575

原创 【定时任务】动态修改配置文件,不需要重启服务

现状:Apollo上修改配置后,需要重启服务才能让定时的配置生效期望:不重启服务,也能生效 @Autowired private ThreadPoolTaskScheduler threadPoolTaskScheduler; private ScheduledFuture<?> future; @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler() { retur

2021-03-29 20:02:34 1363

原创 【File】文件重命名

File sourceFile = new File(pathname + File.separator + oldName);File targetFile = new File(pathname + File.separator + newName);Path source = sourceFile.toPath();Path target = targetFile.toPath();try { Files.move(source, target);} catch (IOExcepti

2021-03-24 19:48:30 428

原创 【List】类型检查

public static <T> List<T> castList(Object obj, Class<T> clazz){ List<T> result = new ArrayList<T>(); if(obj instanceof List<?>){ for (Object o : (List<?>) obj){ result.add(clazz.cast(o))

2021-03-24 19:46:29 151

原创 Java程序运行时间统计-JDK8

Instant start = Instant.now();// 业务逻辑代码...Instant end = Instant.now();long time = Duration.between(start, finish).toMillis(); // 单位为毫秒

2021-03-24 19:43:25 640

原创 【MySQL】查询顺序与查询SQL

【MySQL】查询顺序与查询SQLSQL执行过程执行过程我们发送一条SQL给数据库,其实数据库并没有马上执行,而是进行预处理,对SQL进行分析和优化,可以说最终执行的SQL不一定是我们提交的SQL。整个过程非常繁杂,详细过程见下图:虚拟表数据库提供临时表、内存表、永久表,虚拟表一般要么是临时表,要么是内存表,用完就删除。永久表则数据会存储在磁盘中。游标游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。

2021-03-14 11:37:08 332

原创 【数据库】DBUtils

【数据库】DBUtils封装了对JDBC的操作(关闭资源与事务处理),简化了JDBC操作,可以少写代码。 // com.mchange.v2.c3p0.ComboPooledDataSource; private static ComboPooledDataSource ds = new ComboPooledDataSource(); public static void query() { // javax.sql.DataSource; p

2021-03-13 16:22:11 96

原创 【数据库】JDBCUtils

【数据库】JDBCUtilsjdbc.properties//jdbc 配置文件内容url=jdbc:mysql:///db1user=rootpassword=rootdriver=com.mysql.jdbc.Driver获取连接方式 private static String url; private static String user; private static String password; private static String driver

2021-03-13 15:34:53 60

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除