java
明智说
不慌不忙,做个技术小流氓!欢迎关注我的公众号,微信搜索:明智说,专注分享各种框架源码,中间件技术,MySQL,JVM等等。
展开
-
MySQL 中LIMIT的使用详解
MySQL的Limit子句 Limit子句可以被用于强制 SELECT 语句返回指定的记录数。Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。 //初始记录行的偏移量是 0(而不是 1): mysql> SELECT * FROM table LIMIT 5,10; //检...原创 2018-08-01 16:12:18 · 1898 阅读 · 0 评论 -
lambda表达式入门详解
转自 2018-03-02 Sevenvidia 码农翻身1、什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果你想把“一块代码”赋给一个Java变量,应该怎么做呢? 比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量: 在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。 ...转载 2018-10-21 14:42:10 · 1986 阅读 · 4 评论 -
POI问题总结,关于数字级联及多级级联(三级以上)
目录 最近公司业务需要用到excel,并且要导出模板,今天为止所有的功能都已经实现了,在这里对出现的一些问题做一个总结。效果图:这是一个五级联动的数据,其中第一列是数字开头,实现了五级联动问题1:在做这一块的时候,碰到的第一个问题就是怎么实现级联,这方面资料很多我就不多赘述了,这里给大家推荐几个我找的觉得比较好的博客https://www.cnb...原创 2018-11-01 00:00:06 · 2173 阅读 · 2 评论 -
为什么需要3次握手,4次挥手
前言: 如果你说你懂IT,你懂计算机网络,那么你会怎么解释“三次握手,四次挥手”?----------------1.TCP报文段首部格式:2.TCP建立连接图--------------------------------------------符号说明seq:"sequance"序列号ack:"acknowledge"确认号SYN:"synchronize...转载 2018-11-09 17:27:57 · 289 阅读 · 0 评论 -
spring学习笔记(二)spring中的事件及多线程
我们知道,在实际开发中为了解耦,或者提高用户体验,都会采用到异步的方式。这里举个简单的例子,在用户注册的sh时候,一般我们都会要求手机验证码验证,邮箱验证,而这都依赖于第三方。这种情况下,我们一般会通过新起一个线程或者消息中间件的方式去处理。其实在spring中,本身就提供了publish-event-listener机制还有异步任务机制。通过这两种机制,能很好的帮助我们解耦我们的应用跟代...原创 2019-03-15 02:02:16 · 2627 阅读 · 0 评论 -
spring学习笔记(四)我对spring中bean生命周期的理解
我相信大部分同学对spring中bean的生命周期都不陌生,但是如果要详细的说出每一个步骤,可能能说出来的也不多,我之前也是这样,前几天调了一下spring的源码,看了一点书,突然一下明朗了,理解了spring中bean的生命周期。接下来就跟大家分享下我的心得,有什么不对的也希望大家帮忙指正~我们先看一下spring中bean的生命周期:这是我在网上随便找的一张图,大家估计也看得不少,...原创 2019-03-20 00:43:10 · 258 阅读 · 0 评论 -
spring学习笔记(五)自定义spring-boot-starter(1)
在我们开始定义之前我们应该知道springBoot的大致运行原理,我们从springBoot启动类开始。首先我们看下这个注解,@SpringBootApplication,跟进去可以看到如下代码:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootC...原创 2019-03-21 01:38:16 · 444 阅读 · 0 评论 -
spring学习笔记(三)我对AOP理解
首先我们要知道AOP是什么?AOP全称Aspect OrientedProgramming,即面向切面编程。在这里我不想去说什么是切面,什么是切点,什么是通知等等,相关博客很多,如果大家想知道可以自己去查,这里我希望用图像加代码方式将这些抽象的概念具体化给读者,给自己也捋一捋思路。我们结合代码用图像一起说明,先看代码如下:// 假设我们现在有一个Person类,其中有一个eat的方法p...原创 2019-03-20 00:44:20 · 287 阅读 · 0 评论 -
spring学习笔记(七)HttpMessageConverter
spring学习笔记(七)HttpMessageConverter1. HttpMessageConverter的加载2. 从StringMessageConverter探究消息转换器的原理1. HttpMessageConverter的加载首先我们找到WebMvcAutoConfiguration这个类在其中我们可以看到这么一段代码@Configuration@Import({We...原创 2019-03-30 00:26:26 · 1202 阅读 · 0 评论 -
spring学习笔记(六)自定义spring-boot-starter(2)
上篇文章我们主要讲了spring自动装配的原理,我们知道了springboot在启动的时候会自动去读.factories文件,在factories文件中,autoConfiguration对应的就是我们程序启动时自己预加载的类,另外我也提到了另外一个比较核心的注解,即@ConditionOnxxx。详情点击https://blog.csdn.net/qq_41907991/article/deta...原创 2019-03-27 00:13:19 · 251 阅读 · 0 评论 -
spring学习笔记(八)webSocket
知识储备什么是stomp?我们可以类比TCP与Http协议,我们知道Http协议是基于TCP协议的,Http协议解决了 web 浏览器发起请求以及 web 服务器响应请求的细节,我们在编码时候只要关注我们要发送或接受的信息就行了,不需要关注那些细节直接使用 WebSocket(SockJS) 就很类似于 使用 TCP 套接字来编写 web 应用;因为没有高层协议,因此就需要我们定义应用...原创 2019-04-06 16:50:36 · 377 阅读 · 0 评论 -
Spring Cloud Stream学习(五)入门
前言: 在了解完RabbitMQ后,再来学习SpringCloudStream就轻松很多了,SpringCloudStream现在主要支持两种消息中间件,一个是RabbitMQ,还有一个是KafKa,我这里只会介绍RabbitMQ相关的内容概述: Spring Cloud Stream是一个为微服务应用构建消息驱动能力的框架。它可以基于Spring Boot来创建独立的,可用于生产的S...原创 2019-04-07 21:39:12 · 1128 阅读 · 0 评论 -
JAVA基础篇 之 方法的重载
任何程序语言都具备了一项重要的特性就是对名字的运用。当创建一个对象时,也就给此对象分配到的存储空间取了一个名字。所谓方法则是给某个动作取的名字。通过使用名字你可以引用所有的对象和方法。 将人类语言中存在细微差别的概念映射到程序设计中时,问题随之而生。在日常生活中,相同的词可以表达多种不同的含义----他们被“重载”了,特别时含义含义之间的差别很小时,这种方式非常有用。你可以说“清洗衬衫”,...原创 2019-04-13 00:33:04 · 387 阅读 · 0 评论 -
strut2运行流程的详解
虽然现在struts2已经慢慢淡出了视野,但是作为一个老框架,在我看来,学习价值还是有的,多阅读框架源码帮助很大,大家有空的话也可以尝试看看,好了,话不多说,今天的主题就像标题写的那样,主要探究struts2的执行流程,我们先来看一张图,相信对struts2稍有了解的读者都对这张图很熟悉了 这篇文章的重点就是围绕这张图,希望可以将整个流程说清楚,有不对的地方请大家指正~!!!要看懂这张...原创 2018-07-23 01:12:40 · 399 阅读 · 0 评论 -
mybatis与hibernate运行流程比较
hibernate长时间没用,感觉生疏了,正好借这篇文章整合下知识,顺便复习比较下两种框架。概述:Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。Myb...原创 2018-07-30 21:43:42 · 584 阅读 · 0 评论 -
浅析java中ClassLoader如何加载Class
我的博客地址:https://blog.csdn.net/qq_41907991 ClassLoader是一个经常出现又让很多人望而却步的词。本文试图以最浅显易懂的方式来讲解ClassLoader,希望不对该机制了解的朋友能起一点点作用。 首先来说,要了解ClassLoader,就要知道它是用来做什...原创 2018-04-06 14:02:17 · 2150 阅读 · 0 评论 -
http协议跟tcp协议的简单理解
在说明这两个协议之前,我们先简单说一下网络的分层。 1)应用层支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。主要的协议有:http、ftp、telnet、smtp、pop3等。(2)传输层负责为信源和信宿提供应用程序进程间的数据传输服务,这一层上主要定义了两个传输协议,传输控制协议即TCP和用户数据报协议UDP。(3)网络层...原创 2018-05-05 11:36:22 · 500 阅读 · 0 评论 -
从垃圾回收机制解析为什么局部内部类只能访问final修饰的局部变量以及为什么加final能解决问题
我们先稍微看一下代码:从这里的提示可以看到,必须要将a的修饰符变为final才行。现在笔者就这一结果做出自己的分析: 首先来说,我们知道,方法被调用时会执行,当执行的时候,方法中的局部变量会加载到栈内存中,方法执行完毕后局部变量会从栈中被释放(会被垃圾回收器立即回收)。其次,当一个对象被new出来后,new出来的对象生存再堆上。最后,常量是被放在常量池中。 知道这些后,...原创 2018-06-22 13:52:03 · 908 阅读 · 0 评论 -
struts2入门教学
我的博客地址:https://blog.csdn.net/qq_41907991首先介绍一下struts2使用的基本步骤:1.导入相关的 jar 文件2.需要在 web.xml 文件中配置一个 StrutsPrepareAndExecuteFilter(只有配置了它才可以使用 struts2 框架)3.struts.xml 配置4.创建 Action 来完成逻辑操作如何导入jar文件? web.x...原创 2018-06-09 15:35:00 · 903 阅读 · 0 评论 -
struts2初始化探索(一)
上篇文章已经介绍了struts2的简单使用,现在开始源码的学习。本篇主要介绍struts2的初始化。对应的源码为StrutsPrepareAndExecuteFilter中的init方法。先贴源码:public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter { --这里的StrutsStatics接口中没有...原创 2018-06-09 21:34:45 · 425 阅读 · 0 评论 -
request中跟路径有关的api的分析
最近重在研究struts的源码,其中涉及到了request中的几个api,看了文档后还是觉得不清楚,所以在自己原来的工程中测试了一下各个api的具体效果。在这里跟大家分享一下。 这是我具体测试的代码: 这是我servlet配置的路径: 以下是访问这个ProductServlet后控制台打印的结果: ...原创 2018-06-10 13:21:44 · 528 阅读 · 0 评论 -
项目架构优化之路-------持续更新
前言:对于一个项目的优化,主要分为两种,一种是设计优化,一种是性能优化性能优化主要是值对代码执行效率的优化,比如缓存优化,算法优化等都属于性能优化,而设计优化则是值对代码逻辑以及代码结构的精简和代码可读性的优化。案例:(设计优化,项目基于SSH框架,并且使用spring-data-jpa)这里以一个基于ssh框架的项目为例,相信大家都知道,我们在使用ssh框架完成一个项目的时候,通常会为每一个实体...原创 2018-07-11 10:43:00 · 1282 阅读 · 0 评论 -
nginx反向代理做负载均衡以及使用redis实现session共享配置详解
1.为什么要用nginx做负载均衡? 首先我们要知道用单机tomcat做的网站,比较理想的状态下能够承受的并发访问在150到200,按照并发访问量占总用户数的5%到10%技术,单点tomcat的用户人数在1500到4000左右。这样显然是不够的,为了解决这个问题我们就可以采用负载均衡的方法。 1.1为什么采用nginx? 成本低,不同于硬负载,成本基本为0。 nginx能够...原创 2018-07-05 01:41:35 · 3081 阅读 · 0 评论 -
在使用SSH+Spring开发webservice ,报的一些异常及处理方法
1.No bean named 'cxf' is defined 配置文件被我分成了三份,启动时忘记将webService配置导入到主文件,修改后如下:2.bad request 400访问路径写错,单词拼错了3. 11:35:03,497 ERROR JAXRSInvoker:244 - No subresource locator found for path /...原创 2018-07-18 11:45:25 · 982 阅读 · 0 评论 -
懒加载问题的解决方案
在做项目的时候,一不小心就碰到懒加载的问题,今天做个总结(springdata-jpa): Exception occurred during processing request: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: cn...原创 2018-07-25 13:09:45 · 1315 阅读 · 0 评论 -
springmvc与struts2执行流程比较
之前写过一篇struts2的执行流程的文章了,这里对struts2的流程就不做过多的分析,这篇文章主要分析spring-mvc的执行流程以及struts2与spring-mvc的差别。1.struts2执行流程图:上篇文章链接:https://blog.csdn.net/qq_41907991/article/details/81161149这里大...原创 2018-08-03 19:23:37 · 1204 阅读 · 0 评论 -
spring学习笔记(九)事务学习(上)
前述 这段时间在工作中碰到一个事务相关的问题。先说下这个问题的场景,我们是一个商城项目,正在开发优惠券模块,现在有一个需求是需要批量领取优惠券,而且在领券时,其中一张领取失败不能影响其他符合要求的券的领取。由于之前在开发时,在领券这一块一直做的是单张领取,所以在做批量的时候很简单的做了个循环,然后封装成一个批量领券的方法中。伪代码如下:@Service@Transactional(ro...原创 2019-04-21 01:27:22 · 181 阅读 · 0 评论