Java web
给我丶鼓励
先讲清楚一个点
展开
-
良好的编程习惯-从单元测试开始
原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com初心:记录优秀的Doi技术团队学习经历系列目录引言这篇文章文中的实用例子只是一个抛砖引玉的作用。适合新手学习,或者时间充裕可以深入研究以这篇为目录进行查漏补缺。了解单元测试单元测试属于小型测试,针对单个函数的测试,关注其内部逻辑输出的结果是否正确。如果将一个单元测试看成是一个单位,只需保证...原创 2020-04-24 12:16:41 · 483 阅读 · 0 评论 -
Netty源码分析:1.4服务器启动流程
第一章节是主要是服务器启动的代码分析。章节目录有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4服务器启动流程 为什么先从初始化开始了解服务器启动? 因为在我看服务器启动的...原创 2018-05-23 10:58:25 · 317 阅读 · 0 评论 -
从零写一个Java WEB框架(二)Server层 优化
该系列,其实是对《架构探险》这本书的实践。本人想记录自己的学习心得所写下的。 从一个简单的Servlet项目开始起步。对每一层进行优化,然后形成一个轻量级的框架。 每一篇,都是针对项目的不足点进行优化的。 项目已放上github 上一篇地址:上一篇 开篇本篇针对项目中的Server层进行优化介绍。先来看看Server层的目前情况。 可以看到由于业务简...原创 2018-06-11 17:07:46 · 807 阅读 · 0 评论 -
HashMap 1.8 源码分析
理解HashMap 结构可以看出是由数组+链表+红黑树组成的。put 方法1 首先判断table是否为0或Null,那么就resize()扩容一下。2 根据hash计算出在这个table数组的位置。如果当前位置还没有链表,那么就直接插入一个结点。如果已经存在节点了。那么继续判断。3 首先第一步判断:链表的第一个节点key是否跟要插入的节点相同。4 这一步判断链表是...原创 2018-05-24 17:51:51 · 737 阅读 · 0 评论 -
从零写一个Java WEB框架(六)Controller层优化
该系列,其实是对《架构探险》这本书的实践。本人想记录自己的学习心得所写下的。 从一个简单的Servlet项目开始起步。对每一层进行优化,然后形成一个轻量级的框架。 每一篇,都是针对项目的不足点进行优化的。 项目已放上github 本篇前几篇的优化都没有涉及到Controller层。本篇开始将开始实现对Controller层的优化。由于上篇的IOC,创建了类...原创 2018-06-21 21:04:00 · 996 阅读 · 0 评论 -
从零写一个Java WEB框架(四)框架的演进
该系列,其实是对《架构探险》这本书的实践。本人想记录自己的学习心得所写下的。 从一个简单的Servlet项目开始起步。对每一层进行优化,然后形成一个轻量级的框架。 每一篇,都是针对项目的不足点进行优化的。 项目已放上github 本篇项目现在也跑起来了,而且Server和Dao层都已经封装好了,都可以专心处理各自的业务逻辑,耦合度也低了很多。但是项目还...原创 2018-06-16 00:22:45 · 334 阅读 · 0 评论 -
从零写一个Java WEB框架(五)IOC建立
该系列,其实是对《架构探险》这本书的实践。本人想记录自己的学习心得所写下的。 从一个简单的Servlet项目开始起步。对每一层进行优化,然后形成一个轻量级的框架。 每一篇,都是针对项目的不足点进行优化的。 项目已放上github 本篇在这篇,主要是建立一个Bean容器,实现IOC 控制反转。这样只需要注解就可以实现依赖注入了。 整体实现思路 ...原创 2018-06-16 16:08:05 · 509 阅读 · 0 评论 -
从零写一个Java WEB框架(七)Controller层转换器
该系列,其实是对《架构探险》这本书的实践。本人想记录自己的学习心得所写下的。 从一个简单的Servlet项目开始起步。对每一层进行优化,然后形成一个轻量级的框架。 每一篇,都是针对项目的不足点进行优化的。 项目已放上github 本篇上一篇已经为转换器准备了几个bean类,例如:Param,View,Data 类。本篇就真正的开始写转换器了。 什么...原创 2018-06-29 21:43:51 · 396 阅读 · 0 评论 -
从零写一个Java WEB框架(一)
该系列,其实是对《架构探险》这本书的实践。本人想记录自己的学习心得所写下的。 从一个简单的Servlet项目开始起步。对每一层进行优化,然后形成一个轻量级的框架。 每一篇,都是针对项目的不足点进行优化的。 项目已放上github 项目的基本搭建。一个非常基础的Servlet项目。 基本功能是: - 对数据表-客户表进行数据处理。部分代码讲解...原创 2018-06-11 01:12:23 · 1017 阅读 · 0 评论 -
利用JWT生成Token
开篇实现Token的方式有很多,本篇介绍的是利用Json Web Token(JWT)生成的Token.JWT生成的Token有什么好处呢?安全性比较高,加上密匙加密而且支持多种算法。携带的信息是自定义的,而且可以做到验证token是否过期。验证信息可以由前端保存,后端不需要为保存token消耗内存。本篇分3部分进行讲解。什么是JWTJWT的代码实现,代码将JWT封...原创 2018-11-21 10:39:34 · 1742 阅读 · 2 评论 -
JDK动态代理实践与原理
本篇内容介绍JDK动态代理的基本概念一些JDK动态代理的疑问JDK动态代理的DemoJDK动态代理的原理心得主要思路被代理类:实际代码类,必须实现至少一个接口 (下文中的Man类)代理类:实现代理逻辑的代理类,继承Proxy类和实现被代理类同一个接口 (由JDK动态生成)接口:连接代理类和被代理类的桥梁 (下文中的Person接口)为什么JDK动态代理必须要有接口...原创 2018-12-26 14:13:34 · 285 阅读 · 0 评论 -
《剖析缓存系列》—— 缓存介绍
本系列介绍本系列《剖析缓存系列》,由浅到深的对缓存进行分析介绍,从缓存形式,更新策略,常见问题,以及JAVA缓存使用(JCache,Spring cache,Ehcache)和缓存服务器redis系列目录缓存缓存形式缓存形式分为种静态资源,动态资源,数据缓存静态资源静态资源一般指js、css、img 等非服务器动态运行生成的文件,该文件变更频率很低。浏览器缓存(HTTP缓存)浏...原创 2019-08-03 22:57:23 · 350 阅读 · 0 评论 -
Netty源码分析:1.3初始化NioServerSocketChannel
第一章节是主要是服务器启动的代码分析。章节目录有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4服务器启动流程 为什么先从初始化开始了解服务器启动? 因为在我看服务器启动的...原创 2018-05-23 10:57:51 · 338 阅读 · 0 评论 -
Netty源码分析:1.2初始化NioEventLoop
第一章节是主要是服务器启动的代码分析。章节目录有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4服务器启动流程 为什么先从初始化开始了解服务器启动? 因为在我看服务器启动的...原创 2018-05-23 10:57:09 · 290 阅读 · 0 评论 -
Connection 元数据的使用例子
元数据(MetaData) 1. 在jdbc中获取数据库的定义,例如:数据库、表、列的定义信息。就用到元数据 2. 在jdbc中可以使用: 数据库元数据、参数元数据、结果集元数据 3. 用到的导入方法 java.sql.Connection; ps:1.楼主主要 用于得到数据库列表的名称,根据名称去获得每一列的值。原创 2016-12-24 17:32:20 · 625 阅读 · 0 评论 -
BeanUtils的常用用法以及例子
最近学了一个对javaBean进行操作的工具类。程序中对javabean的操作很频繁,所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件。BeanUtils组件, 作用是简化javabean的操作! 用户可以从www.apache.org下载BeanUtils组件,然后再在项目中引入jar文件!使用BenUtils组件:1.原创 2016-12-24 16:31:44 · 648 阅读 · 0 评论 -
写一个将一个String类型的json经过base64加密后解密转化成javaBean的工具类
这个是由于自身需要,所写的一个工具类。代码不多,几十行主代码。主要用到3个jar包。 功能:可以将String类型的JSON格式的字符串(经过base64加密过得)解密后,添加到javaBean里面去。 用法:主需要调用静态方法,传入字符串,和javaBean.返回值是javaBean. 1.jar包 (1)一个JSON包。原创 2017-03-22 13:06:48 · 3255 阅读 · 0 评论 -
JAVA:一个程序学会用webService调用
本篇文章就通过写一个获取城市天气情况的程序,学会调用webService。webService分客户端和服务端的,本篇就写客户端的调用套路。服务篇的就下次再写。嘻嘻~求关注。 本章内容: - 介绍webService - 程序webService的开始编写(只需要写4句就可以实现。) - webService客户端的总结webService的介绍Web service让你的网站原创 2017-08-16 23:45:08 · 709 阅读 · 2 评论 -
Java8:流 学会用流
目录: - 什么是流 - 8个例子用上流 - 总结流 - 列表什么是流java.util.Stream的一个接口,简称流,可以处理数据更加方便。可以看成遍历数据集的高级迭代器。提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势。Stream 可以并行化操作,迭代器只能命令式地、串行化操作。Stream 的另外一大特点是,数据源本身可以是无限的。原创 2017-08-16 23:50:02 · 405 阅读 · 0 评论 -
SpringMVC 接收时间类型
因为SpringMVC 不会自动将String类型转换成时间类型,因此需要自己写工具类来实现转换本篇主要分3点。 1. 测试SpringMVC 对时间类型的转换问题 2. 如何解决。 3. 简单讲解一下原理 此例子转换两种数据类型 - Date类型 - Timestamp 类型Controller 类@Controller@RequestMapping("原创 2017-11-01 21:45:52 · 1927 阅读 · 0 评论 -
Swagger2+SpringMVC 生成API接口文档
简单记录一下配置的过程 - 导入包 - 写个配置类 - 在Controller层用注解进行注释 - 通过一个URL就可以看到api接口文档jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <ver原创 2018-03-23 00:00:35 · 1090 阅读 · 0 评论 -
前后端分离-跨域会话如何保持?
开篇因为CORS的出现,大大降低了跨域的难度,另到AJAX有了更大的发挥空间,也导致了前后端更加容易实现。但是今天在实现前后端的时候发现了一个问题。在进行session会话管理的时候,前端无法发送cookie到后端,前端每次访问后端都相当于一次新的会话,这样就导致登录后的信息是无法保存的。客户端每一次访问都需要重新登录。原因对于前端来说,seesion字段是存在cookie中的。在跨域过程中,Coo原创 2018-03-23 00:01:28 · 3658 阅读 · 0 评论 -
Maven 多模块项目
本篇介绍了如果构建一个Maven的多模块项目,一些问题的解决办法。简单理解Maven的多模块,其实可以简单的理解为,有多个POM表构成,由一个父表POM组织起来,形成了Maven的多模块模式。例如在一个简单的ssm项目中,有service层,dao层,controller层。如果把3层分成3个模块,就有3张pom表,然后由一个父表把这3张表组织起来。一个Maven的多模块就成功了。实现首先建立一个原创 2018-03-23 00:04:13 · 304 阅读 · 0 评论 -
Netty实现自定义协议和源码分析
本篇 主要讲的是自定义协议是如何实现的,以及自定义协议中会出现的问题和Netty是如何支持的。分为4个部分 |– 粘包 拆包 数据包不全 和解决方案 |– 代码实现 |– ByteToMessageDecoder的源码分析 |– 过程流程图粘包TCP是以字节流流的方式来传输的,数据是存储在缓冲区。虽然发送数据是以每个包发送的,但如果...原创 2018-05-23 10:55:25 · 2304 阅读 · 1 评论 -
Netty源码分析:1.1初始化NioEventLoopGroup
第一章节是主要是服务器启动的代码分析。章节目录有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4服务器启动流程 为什么先从初始化开始了解服务器启动? 因为在我看服务器启动的...原创 2018-05-23 10:56:26 · 346 阅读 · 0 评论 -
getResource()和getResourceAsStream以及路径问题
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用Filefile = newFile("c:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于JAVA精神来说,应用应该一次成型,到处可用,并且从现实应用来讲,最终生成的应用也会部署到Wind转载 2016-11-30 23:59:38 · 367 阅读 · 0 评论