- 博客(57)
- 资源 (4)
- 收藏
- 关注
原创 mybatis sql执行流程【简化】
执行表达式: configuration.getMappedStatement(statement)拓展:mybatid executor有几种执行器?//从configuration中获取mapperStatement数据。//从MappedStatement 获取当前绑定的sql。二、再mybatis-config.xml中引入mapper。,可以看到对应的statement保存的信息。一、添加一个mapper.xml。进入selectOne方法。四、执行sql:源码。
2023-03-14 16:58:40 559
原创 MyBatis源码分析
扩展:parseConfiguration 解释了mybatis解析配置文件的顺序,由此可见,我们再配置文件中的属性配置不能随便变更顺序。解析mapper,由源码可见,mapper从,package->resource->url->class这个顺序解析。扩展二:mybatis mapper的几种方式:resource url class pacakge。parser.evalNode("/mapper"):解析mapper。//判断是否已加载过mapper。//解析mapper。
2023-03-13 13:08:41 275
原创 ByteBuf 内存问题
使用:ByteBufAllocator.DEFAULT.heapBuffer()创建堆内存。Netty的ByteBuf和NIO的ByteBuffer,支持池化操作。③由于直接使用的系统的内存,因此内存分散,连续性差。②直接内存少了GC的管理,对JVM GC压力小。①直接内存读写效率非常高,少了一次内存复制。JVM从内存中划出的一部分内存,连续性好。直接内存遵循:谁最后用,谁释放relase。④GC不管理内存,因此要自己手动释放。扩容部分内存、可写部分、可读部分,废弃部分。①写指针②读指针③容量④最大容量。
2023-03-09 14:33:36 415
原创 Netty channelHandler注意事項——super.channelRead(ctx, msg)
通过nioSocketChannel.pipeline()的addLast添加入站处理器,如果有多个必须显示的唤醒下一个入站处理器,否则执行链中间会断掉。//这里未调用唤醒下一个处理器。//找到下一个handler并执行。//新启动一个线程,执行新的处理器。
2023-03-09 13:17:18 940
原创 spring 的invokeBeanFactoryPostProcessors()
以事务导入为例:AdviceModeImportSelector 实现了接口ImportSelector,重写了selectImports 方法,导入了其余的配置类:TransactionManagementConfigurationSelector。BeanFactoryPostProcessor在bean的生命周期中,主要增强的是BeanDefinition对象,对bean的定义信息增加。//循环处理实现了BeanFactoryPostProcessor接口的增强器。//注册更多的bean定义信息。
2023-03-06 14:03:01 405
原创 springBoot 事务基本原理
②:ProxyTransactionManagementConfiguration 是一个配置类,用于注册启用基于代理的注释驱动的事务管理所必需的 Spring 基础结构 bean。2):TransactionAttributeSource:一个事务属性相关来源,知道如何获取事务属性,无论是从配置、源代码级别的元数据属性(如注释)还是其他任何位置,解析注解的属性。3):TransactionInterceptor:事务拦截器,具体执行事务的相关内容就在此处。AdviceMode :默认属性为:PROXY。
2023-03-06 13:38:37 1102
原创 springBoot 消息转换器和自定义消息转换器
/Converter S源类型,T目标类型。②服务器引入可生产的数据类型的jar或自定义消息转换器。一、通过实现接口:WebMvcConfigurer。* 添加自定义格式化器或转换器。例如:引入可生产xml消息类型的jar包。* 将输入的内容读成指定的类型并返回。* 返回支持是消息转换器的媒体列表。* 将给定的内容写成指定的类型。* 能否以指定的类读取。* 能否以指定的类写。扩展:自定义消息转换器。二、通过注册Bean。
2023-02-28 16:02:39 597
原创 springBoot内容响应和内容协商原理
/通过循环一个一个判断当前返回值处理器是否支持处理当前返回值。//找到服务器可生产的类型以及游览器可接受的类型,双向同意。//通过游览器可接受的类型和服务器可生产的类型进行匹配。* 当前返回值处理器是否支持处理返回值。2.1:获取游览器可接受的返回值类型。2.2:服务器可生产的返回值类型。//是否支持处理当前返回值。//获取游览器支持的响应类型。//服务器可生产的返回值类型。
2023-02-28 15:16:56 309
原创 springBoot自定义参数类型转换器
/Converter S源类型,T目标类型。方式一:通过实现接口:WebMvcConfigurer 并重写方法的形式。springBoot允许用户自定义转换器,以处理自定义请求参数协议。* 自定义转换逻辑,S源参数类型,T目标参数类型。* 添加自定义格式化器或转换器。
2023-02-28 14:47:33 1043
原创 springBoot请求处理原理---HandlerAdapter
AbstractHandlerMethodAdapter 实现了HandlerAdapter。返回值处理器:HandlerMethodReturnValueHandler。参数解析器:HandlerMethodArgumentResolver。核心:执行handler。
2023-02-28 13:58:38 541
原创 springBoot请求映射原理源码解析(二)
springBoot处理请求通过:DispatcherServlet ->doService->doDispatch(request, response).->getHandler->hand.handler。通过方法:真正执行请求分发。根据请求for循环依次尝试 handler处理器,执行处理。核心代码一:getHandler(processedRequest) 获取处理请求的handler。其中RequestMappingHandlerMapping。
2023-02-28 13:40:01 147
原创 springBoot请求映射原理代码解析(一)
每次发送请求是如何找到那个接口处理这些请求?在springBoot中所有请求都会被:DispatcherServlet处理。子类DispatcherServlet 又继承了FrameworkServlet并重写了 它的方法。在FrameworkServlet 子类中重写了doGet....等方法,这些方法直接调用的是。
2023-02-28 12:15:33 213
原创 springBoot对REST支持源码解析
④:判断请求是否在给定的请求集合内:private static final List ALLOWED_METHODS = Collections.unmodifiableList(Arrays.asList(HttpMethod.PUT.name(), HttpMethod.DELETE.name(), HttpMethod.PATCH.name()));②:进入拦截器后检查请求是否是POST请求,请求是否错误。①:表单请求携带参数:_method。
2023-02-28 12:02:00 369
原创 springBoot 处理静态资源原理
> servletRegistrations:注册原生的Servlet组件例如:Servlet/Listener/Filter等,通过注解:@WebServlet @WebFilter @WebListener。该类通过:@EnableConfigurationProperties 绑定配置类:WebMvcProperties.class, WebProperties.class,实现自动配置。二、找到内部类:该内部类任然是一个配置类,由注解:@Configuration标识。
2023-02-28 11:38:16 545
原创 spring boot+dubbo+nacos+seata分布式事务简单实例
一、下载seata服务端软件(以下以windows 为例): ①:下载链接:https://github.com/seata/seata/releases ②:配置seata;打开seata进入conf目录,编辑file 和registy文件(注意:这里file.conf为实力配置文件,最终生效的文件为,类型为:CONF文件) 配置注册中心:打开registy.conf(文件类型为:CONF)----这里使用nacos作为注册中心配置中心也使用nacos...
2021-04-25 15:36:09 494
原创 JavaFX初探一(创建一个简单的JavaFX窗口)
创建一个简单的FX窗口,废话少说直接上代码:一、创建一个主程序-程序入口main public static void main(String[] args) { launch(args); } //启动窗口 @Override public void start(Stage primaryStage) { this.primaryStage=primaryStage; try { ini
2021-01-12 11:28:16 1346
原创 element ui 表格展开问题
element ui提供了针对表格行展开的方法:通过设置 type="expand" 和Scoped slot可以开启展开行功能,el-table-column的模板会被渲染成为展开行的内容,展开行可访问的属性与使用自定义列模板时的Scoped slot相同<el-table-column type="expand">实例:<!-- 示例展示的为展开内容为表格--><template> <el-table :data="tableD...
2020-07-03 13:27:37 1716
原创 C#学习入门(一)
因为是从事的java开发,因此对java相对熟悉,在 工作之余学习一门新的语言是有必要的,因此开始我的C#学习之路,C#和JAVA在语法上有很相似的地方,因此学习相对容易。一、C#命名空间:namespace命名空间的定义是以关键字namespace开始,后跟命名空间的名称,具体代码如:namespace action{ //类信息、等数据}与JAVA想呼应的为package;即java中的包的概念,如:package packageName;不同的是C# 命名...
2020-06-10 14:18:14 418
原创 JS对象数组去重一
实际开发中常常要用到前端js对象数组去重,网上方法大同小异,然后有些确没有经过实践,现提供经过实践的方法:js对象数组求补集: var B=b;//数组B let test=A.reduce(function(pre,cur){ if(B.every(item=>item.唯一键!==cur.唯一键)){ ...
2020-04-23 15:16:57 216
原创 vue父子页面参数和事件问题一
一、如何在父组件中打开子组件(弹框) ①:引入子组件import 组件名 from './组件页面' ②:注册子组件:components: {组件名}, ③:在页面中插入组件二、父子组件如何传递参数: ①:子组件注册事件、属性 属性通过使用【:属性名】,事件使用:【@事件名】。其中,属性名在父组件中data()中初始化,事件在父组件:m...
2020-04-22 14:44:52 233
原创 java树形菜单查询(mybatis树形结构查询)
树形菜单在很多系统中都存在,然后在查询的时候确实很费事,如果使用后台代码逻辑去查询,会设计到递归等操作,频繁发起数据库连接,增加数据库压力。经过我多番研究发现mybatis可以实现树形菜单查询(包括多级树);树形菜单如下:该图仅只有三级菜单,但是提供的方法可以做到多级菜单适用一、创建数据库表(略): 具体表中要有 id和父id字段二、创建实体类: ...
2019-07-01 14:32:44 6469
原创 ActiveMQ 学习札记二
在ActiveMQ 学习札记一中写了简单ActiveMQDemo。下面一步一步跟着创建过程分析源码。一、ActiveMQConnectionFactory 创建ActiveMQ连接工厂ActiveMQConnectionFactory 实现了ConnectionFactory, QueueConnectionFactory, TopicConnectionFactory。因此可以创...
2019-06-13 11:38:23 605
原创 ActiveMQ 学习札记一
Apache ActiveMQ™是最流行的开源,多协议,基于Java的消息服务器。它支持行业标准协议,因此用户可以通过广泛的语言和平台获得客户选择的好处。可以使用C,C ++,Python,.Net等连接。使用无处不在的AMQP协议集成您的多平台应用程序。使用STOMP通过websockets在Web应用程序之间交换消息。使用MQTT管理您的IoT设备。支持您现有的JMS基础架构及其他。...
2019-06-12 14:29:46 293
原创 spring容器之ApplicationContext
一、ApplicationContext:是spring继BeanFactory之外的另一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。为应用程序提供配置的中央接口。在应用程序运行时这是只读的,但如果实现支持这一点,则可以重新加载。一个ApplicationContext提供:•访问应用程序组件的Bean工厂方法。从org.springframework.bea...
2019-05-16 14:16:28 59477
原创 BeanFactory容器之AutowireCapableBeanFactory、HierarchicalBeanFactory、ListableBeanFactory
一、AutowireCapableBeanFactory:提供了自动装配Bean的实现,提供bean创建(带有构造函数解析)、属性填充、连接(包括自动装配)和初始化。处理运行时bean引用、解析托管集合、调用初始化方法等。支持自动装配构造函数、按名称的属性和按类型的属性。其通过实现类AbstractAutowireCapableBeanFactory 实现bean的创建,对应源码:...
2019-05-16 10:46:52 996
原创 spring中的BeanFacoty和ApplicationContext
一、顶级Factory-BeanFactory:是所有Factory的父级,是spring 的核心,spring IOC容器通过BeanFactory创建、管理Bean。提供了用于访问Spring IoC容器的根接口。其子类包括:ApplicationContext,AutowireCapableBeanFactory,ConfigurableApplicationContext,Configur...
2019-05-15 15:34:41 476
原创 java 对象clone之 深克隆、浅克隆
话不多说上代码解释深浅克隆:建立两个对象student和teacher:public class student implements Serializable,Cloneable{//实现克隆空接口Cloneable /** * 序列id */ private static final long serialVersionUID = -51034173...
2018-07-19 11:33:51 299
原创 java 解析xml
简单的使用JAXBContext进行object和xml之间的转换: JAXBContext context = JAXBContext.newInstance(clazz); // 进行将Xml转成对象的核心接口 Unmarshaller unmarshaller = context.createUnmarsha...
2018-07-18 16:36:27 222
原创 java webService接口如何传参和接收参数
一、获取接口信息: 使用工具soapUI获取接口调用信息: 双击request:复制接口调用格式:webService接口通常传递xml参数因此需要组装数据: ①若传递单个参数则:<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cen...
2018-07-18 16:25:31 44995 3
原创 java 调用webService接口
由于项目中使用webService接口,因此学习了下如何调用webService接口。一、使用httpClient调用webService接口: public static String executeWebService(String urls,String soapXml) throws IOException { //设置url,不是WSDL地址 ...
2018-07-18 16:06:20 671
原创 java SSM 开发webservice接口
之所以写这篇文章是因为公司有一个项目要用webservice进行开发,由于之前没有接触过webservcie接口。因此在网上简单的学习了一下如果用java开发并发布webservice接口。简单的webservice接口示例:@WebService public class JwsServiceHello { /** * 非静态方法,改方法会被发布出去 ...
2018-07-18 15:54:38 2016 1
原创 spring boot +activeMQ(一)
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP。引用...
2018-06-25 20:26:00 576
原创 spring 底层简单分析(一)
spring通过IOC和DI进行bean的依赖和管理,其中spring具体结构如下: 其中core container是spring的核心内容包括:core:为spring提供uitl的支持协助context、bean进行spring管理。contex:为bean提供spring的环境、提供bean的各种信息。bean:spring 核心组件中的核心组件,为spring提供Bean,相当于O...
2018-06-21 15:32:53 380
原创 java 框架之Jersey+springboot 简单学习(一)
Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。与Struts类似,它同样...
2018-06-15 14:27:03 1975
原创 并发 同步器CyclicBarrier(循环栅栏)、CountDownLatch(闭锁)、Semaphore(信号灯)---简单学习
CyclicBarrier:java.util.concurrent.CyclicBarrier包下提供的一个同步器类,该类会等待指定个数的线程全部执行完后才执行后续逻辑。该类提供了两个构造函数:注:译自java apiCyclicBarrier(int parties)创建一个新的循环栅栏,当给定的缔约方(线程)等待它时,它将会等待,并且当栅栏被等待时,它不会执行预先定义的操作CyclicBar...
2018-06-12 16:37:31 389
原创 分布式服务架构之Hessian原理分析(一)
使用HessianServiceExporter向外暴露服务,接收请求:HessianServiceExporter接收到请求后通过调用handleRequest的invoke进一步执行请求:在invoke中,拿到请求的Servlet InputStream检索请求体作为二进制数据,返回数据也是一个适合在响应中写入二进制数据的Servlet Output Stream。servlet容器不对二进...
2018-06-07 15:23:02 1755
原创 分布式框架之Hessian简单了解
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。使用Hessian调用远程接口,更简单、快捷、方便。下面是我整合spring boot+Hessian的简单应用测试。一、服务端(客户端一致)引入Hessian依赖:...
2018-06-07 14:28:47 1173
Spring.MVC-A.Tutorial-Spring.MVC学习指南.rar
2019-06-13
算法导论第三版(中文版)-1.rar
2019-06-13
大型网站技术架构.rar
2019-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人