
java框架
轻尘×
一念起,千山万水;一念灭,沧海桑田;生活,或许本该就有诸多遗憾;那些情,已散落天涯,那些未说完的话、未叙完的故事,终将被流年吹散
展开
-
实现了Spring的Aware接口的自定义类什么时候执行的?
以如下代码为例,自定义类MyAware实现了BeanFactroryAware,希望在MyAware中攀上BeanFactory这个亲戚,那spring是什么时候给我beanFactory的呢?在创建每一个bean时,都会执行一下这个invokeAwareMethods,这段代码的逻辑很简单,就是判断当前的bean是否是Aware类型的,如果是,具体是哪种。了解到用户可以通过实现相应的Aware接口来获取spring框架提供的能力,俗称“攀亲戚”我们通过debug堆栈信息就能看出。原创 2022-12-01 18:27:15 · 917 阅读 · 0 评论 -
springboot自定义starter实践
仿照spring的规范,artifact命名为xxx-spring-boot-starter。原创 2022-11-25 12:19:58 · 950 阅读 · 0 评论 -
es多字段模糊匹配wildcardQuery,java实现
es 版本:7.10.1spring-cloud版本:2.3.5.RELEASEspring-boot-starter-data-elasticsearch 版本 2.3.12.RELEASEspring-data-elasticsearch 版本 4.0.9.RELEASEes查询,需求:title或者content任意一个字段能匹配到关键词即可。原创 2022-11-22 18:01:44 · 6963 阅读 · 0 评论 -
记一次failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried:ConnectE解决过程
编码无小事,切不可粗心大意。原创 2022-11-21 10:52:06 · 24909 阅读 · 3 评论 -
dubbo的负载均衡策略之RandomLoadBalance加权随机策略源码分析
RandomLoadBalance代码阅读起来没什么障碍,但里面包含的小细节(思想)还是很值得学习的,多阅读优秀的代码,模仿它,学习它,超越它!原创 2022-09-08 17:18:54 · 453 阅读 · 0 评论 -
AutowiredAnnotationBeanPostProcessor什么时候被实例化的?
AutowiredAnnotationBeanPostProcessor是spring实现自动装配的基石,根据前文《 internalAutowiredAnnotationProcessor在哪冒出来的?》,我们已经知道了AutowiredAnnotationBeanPostProcessor是什么时候被加入BeanDefinition,那它又是在哪个步骤被实例化的呢?把断点打在 refresh()方法的invokeBeanFactoryPostProcessors处我们可以看看invokeBeanFact原创 2022-06-25 17:29:21 · 543 阅读 · 0 评论 -
走读源码探究HashMap的树化时机以及红黑树的操作机制
通过两篇文章:深入源码分析HashMap到底是怎样将元素put进去的 和 HashMap扩容后,元素是如何重新分布的,我们逐一分析了HashMap的初始化和扩容机制,在末尾还留下了一个悬念,就是HashMap的树化,即什么时候转化成红黑树,以及怎么转成红黑树的没有深入探究,今天我们就来通过走读代码,一步一步走进HashMap的红黑树。目的探究Node转化成TreeNode的时机以及TreeNode的操作机制说明本次探究使用的jdk版本:1.8HashMap结构示意图思路通过以往的两次分析,我原创 2021-04-15 15:02:16 · 580 阅读 · 1 评论 -
HashMap扩容后,元素是如何重新分布的
上文回顾在上文深入源码分析HashMap到底是怎样将元素put进去的我们着重分析了无参构造函数是如何创建map对象和HashMap是如何将第一个元素put进table的。此篇重点这篇我们将逐行代码分析1、有参构造函数是如何创建map对象的2、当元素增多导致扩容之后,元素是如何重新分布的同样,为了方便读者复盘,我截取源码是尽量将行号带上。jdk版本还是1.8结构图再重复一遍,HashMap的底层数据结构为数组+链表+红黑树的结构,放一个HashMap的结构示意图,有个大致印象。解剖思路原创 2020-09-10 11:39:08 · 6727 阅读 · 8 评论 -
深入源码分析HashMap到底是怎样将元素put进去的
说明此次深入源码解剖是为了搞明白几个问题1、HashMap是如何初始化的2、HashMap的扩容机制是怎样的3、元素是put进HashMap的,具体位置在哪(重难点)4、扩容后,元素是如何重新分布的(重难点)注:为了方便读者复盘,我截取源码时会将源码行号也带上。jdk版本:1.8在深入源码之前,应该先有个大致的了解,在JDK8里面,HashMap的底层数据结构已经变为数组+链表+红黑树的结构HashMap结构示意图数组就是源码中的table链表就是内部类Node红黑树就是内部类原创 2020-09-09 12:00:18 · 1456 阅读 · 4 评论 -
HashMap的resize()方法注释
/** * Initializes or doubles table size. If null, allocates in * accord with initial capacity target held in field threshold. * Otherwise, because we are using power-of-two expansion, the * elements from each bin must either stay at s.原创 2020-09-04 16:46:15 · 266 阅读 · 0 评论 -
spring boot 的@Scheduled定时任务,同一时间段的定时任务只会执行一个,其余的会被阻塞等待
查看源码发现默认线程池中只有一个线程,只能挨个执行,解决方法线程池多加几个线程,启动项类中加入如下配置@Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(50);// 自定义线程个数 return taskSchedu原创 2020-05-12 15:00:22 · 3343 阅读 · 1 评论 -
线程池笔记(一)
线程池类别Executors 下有五类线程池参数介绍:corePoolSize:核心线程数,核心线程会一直存活。maximumPoolSize:最大线程数,决定线程池最多可以创建多少线程。keepAliveTime:空闲时间,当线程闲置超过空闲时间时就会被销毁。uint:空闲时间的单位。workQueue:缓冲队列ArrayBlockingQueue:有界队列,有最大容量闲置。...原创 2020-05-07 16:36:46 · 314 阅读 · 0 评论 -
shiro + redis session过期时间不符合预期,提前过期
shiro + redis session过期时间不符合预期,提前过期redis的过期时间设置的是8小时,如下 /** * 配置shiro redisManager * 使用的是shiro-redis开源插件 * * @return */ public RedisManager redisManager() { Red...原创 2019-12-20 16:51:44 · 4850 阅读 · 3 评论 -
mybatis plus中SelectProvider自定义sql避免where 1=1
因为查询条件的不确定,用到了where 1=1这样的权宜之计,使用WHERE 1=1 之后,就不能使用索引了且会遍历全表,显然在数据量比较大的情况下这是不能接受的解决方法之一:在返回自定义sql之前检查sql,将不需要的where 1=1替换掉 public static String replaceForeverTrueSql(String originalSql) { ...原创 2019-10-25 11:27:02 · 3015 阅读 · 0 评论 -
spring boot整合jooq
项目结构:dependencies中加入 <dependency> <groupId>org.jooq</groupId> <artifactId>jooq-meta</artifactId> </dependency>原创 2019-01-26 09:30:01 · 1135 阅读 · 0 评论 -
mybatis源码阅读系列之源码下载
一、百度输入mybatis 二、选择Git 项目 三、选择 mybatis 四、拉到页面最下面,选择最新 下载jar包 下载源码原创 2018-02-26 22:24:44 · 2175 阅读 · 0 评论 -
过滤器解决全站乱码
创建一个过滤器,设置请求访问编码package com.hongyi.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletExcept原创 2017-06-21 20:33:52 · 345 阅读 · 0 评论 -
MyBatis与Spring整合
整合背景 稍微大一点的项目都会使用SSM或者SSH框架,但是如果项目不是那么的大,用MyBatis和Spring就足够了,MyBatis的优势就是sql灵活,可以适应多变的需求;使用spring可以降低各模块之间的耦合度,方便系统的升级与维护。 整合思路 需要spring通过单例的方式管理SqlSessionFactory spring和mybatis整合生成代理对象,使用SqlSessio原创 2017-05-27 12:00:23 · 550 阅读 · 0 评论 -
Mybatis一对多关联映射实例
Mybatis一对多关联映射实例需求:查询购买了商品的用户的信息和用户的订单信息以及订单的明细。 这句话有点绕,稍微捋一捋,假设天明在京东商城有过一次购物经历这一次他买了三个旺仔小馒头和4瓶旺仔牛奶现在的需求就是需要(1)、查询出天明的信息(2)、天明下的那个订单的信息(3)以及订单里面购物清单的详细信息。 定义实体类 用户实体package com.hl.myabtis.first.beas原创 2017-05-26 11:01:43 · 2113 阅读 · 2 评论 -
MyBatis与Hibernate本质区别与运用场景
MyBatis与Hibernate本质区别与运用场景 Hibernate:是一个标准的ORM框架(对象关系映射)。入门门槛较高,原则上不需要程序员写SQL,sql语句自动生成;因而对sql语句进行优化、修改就比较困难。 运用场景: 适用于需求变化不多的中小型项目,例如后台管理系统,erp、orm、ao系统。 MyBatis:专注sql本身“十八年”,需要程序员自己动手写sql,这样灵原创 2017-05-23 09:46:36 · 462 阅读 · 0 评论 -
基于SSH项目开发过程回顾
ssh项目开发流程: 一、项目开发计划 1、分析项目的模块,生成项目解决方案 2、项目架构设计 分为:表现层→控制层→业务层→Dao层→持久层→db数据库,分别对各层进行设计 框架的搭建遵循从后往前的规则 db数据库层 (1):数据库选择,数据库使用MysQL (2):建立相关表;搭建环境时可建立测试表完成环境搭建 持久层 (1):建立与数据表对应的JavaBena对象,创建相应原创 2017-05-03 18:17:04 · 1337 阅读 · 2 评论 -
SSH全注解开发笔记
SSH全注解开发笔记一、添加Struts2与Spring注解 使用了Struts2注解后,无需再使用struts.xml了。然而Strut2通过在action中使用伪类,在Spring中定义该Action的Bean的方式,将Service对象注入给了Action。一旦删除了struts.xml,在Spring中定义的Action的Bean,将与Struts2无关。而这个关系,通过Spring的注解原创 2017-04-19 11:20:06 · 1004 阅读 · 0 评论 -
No bean named 'MysessionFactory' is defined
No bean named ‘MysessionFactory’ is definedHTTP Status 500 - No bean named 'MysessionFactory' is definedtype Exception reportmessage No bean named 'MysessionFactory' is defineddescription The原创 2017-04-19 09:04:41 · 4336 阅读 · 0 评论 -
could not initialize proxy - no Session
could not initialize proxy - no Session你是不是已经配置了openSessionInView还报这个错,不是,那还不去配置!!!!是的,因为你配置的位置不对,由于过滤器的先进先出原则,你应该把Spring 的相关配置配在Struts2前面<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http原创 2017-04-18 19:41:43 · 410 阅读 · 0 评论 -
javassist_0 cannot be cast to javassist.util.proxy.Proxy
javassist_0 cannot be cast to javassist.util.proxy.Proxyjavassist_0 cannot be cast to javassist.util.proxy.Proxycom.hk.beans.Student_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy原创 2017-04-18 19:29:56 · 2468 阅读 · 0 评论 -
createQuery is not valid without active transaction
createQuery is not valid without active transaction原创 2017-04-18 17:23:36 · 4243 阅读 · 0 评论 -
SSH整合jar包总结
SSH整合jar包汇总Struts2版本:struts-2.3.31 Spring版本:spring-framework-4.2.1.RELEASE-dist Hibernate版本:hibernate-release-5.0.1.Final 以上框架下载方式在历史博文均有 Mysql版本:6.0 (64位) 整合jar共计49个 Struts2共16个Struts2基本jar有13个原创 2017-04-14 17:20:22 · 5328 阅读 · 2 评论 -
Spring在Web项目中的应用-添加ServletContext监听器
添加ServletContext监听器原创 2017-04-14 15:05:02 · 752 阅读 · 0 评论 -
Spring与Hibernate整合
实例:http://pan.baidu.com/s/1eRFKEbg搭建环境:Spring与Hibernate整合原创 2017-04-13 17:59:47 · 474 阅读 · 0 评论 -
使用AspectJ的AOP配置管理事务配置
使用AspectJ的AOP配置管理事务的配置原创 2017-04-13 10:08:36 · 1149 阅读 · 0 评论 -
使用Spring的事务注解管理事务
使用Spring的事务注解管理事务原创 2017-04-13 09:44:27 · 422 阅读 · 0 评论 -
Caused by: java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
Spring开发时碰到一个这样的问题,一头雾水,看错误似乎是少了个类,这个类在org/aopalliance/aop下,原来是少了一个AOP联盟的jar包 jar下载地址:http://pan.baidu.com/s/1qYBCHPi原创 2017-04-13 09:30:58 · 1693 阅读 · 0 评论 -
Spring与Dao-Jdbc模板实现增删改查
Spring与Dao-Jdbc模板实现对象的增删改查原创 2017-04-12 16:28:13 · 2234 阅读 · 0 评论 -
Spring与DAO——环境搭建
Spring与JDBC模板为了避免直接使用JDBC而带来的复杂且冗长的代码,Spring提供了一个强有力的模板类—JdbcTemplate来简化JDBC操作。并且,数据源DataSource对象与模板JdbcTemplate对象均可通过Bean的形式定义在配置文件中,充分发挥了依赖注入的威力原创 2017-04-12 15:22:50 · 489 阅读 · 0 评论 -
AOP-AspectJ-基于XML的实现——各种通知
AOP-AspectJ-基于XML的实现——各种通知 Spring AOP-AspectJ-基于XML的实现各种通知切面类package c原创 2017-04-07 17:44:39 · 428 阅读 · 0 评论 -
AspectJ-基于注解的实现-切入点的定义
切入点的定义减少切入点定义的冗余原创 2017-04-06 21:46:40 · 1550 阅读 · 0 评论 -
AspectJ 基于注解的实现各种通知
接口package com.hk.spring.annotation;public interface ISomeService { public void doFirst(); public void doSecond(); public String doThird();}实现接口package com.hk.spring.annotation;public class原创 2017-04-06 21:35:16 · 1194 阅读 · 0 评论 -
AspectJ 基于注解的实现前置通知
Spring环境下AspectJ 基于注解的实现前置通知原创 2017-04-06 20:52:34 · 715 阅读 · 0 评论 -
AOP-自动代理生成器-Bean名称自动代理生成器
Spring AOP-自动代理生成器-Bean名称自动代理生成器原创 2017-04-06 19:31:18 · 608 阅读 · 0 评论 -
AOP-自动代理生成器-默认Advisor自动代理生成器
AOP-自动代理生成器-默认Advisor自动代理生成器 当有多个目标对象时,生成代理会很繁杂,为了简单采用自动代理生成器配置文件<原创 2017-04-06 17:48:41 · 750 阅读 · 0 评论