随笔分类 -  Java

记录对java的学习和研究
摘要:我的潘多拉 从一个故事说起。从前,有个Java程序员非常喜欢写程序,喜欢研究源码,读英文文档。但是它在一家小公司里工作,公司的技术栈很陈旧。 单个系统代码中含有很多的xml配置,配置各种中间件的入口适配器,而不同的业务系统中都是类似的配置。启动单个系统很慢。启动依赖web组件,无法快速部署。公共组件 阅读全文
posted @ 2020-03-03 09:29 李福春 阅读(543) 评论(1) 推荐(1) 编辑
摘要:背景 为了更方便的书写和阐述问题,文章中按照第一人称的角度书写。作为一个以java为主要开发语言的工程师,我所描述的都是java相关的编码和设计。 工程师的静态输出就是代码和文档,动态的就是各种应用程序(app,h5站点,微信公众号,小程序)。动态的先不讨论,主要讨论静态的。 随意查看一个代码库,可 阅读全文
posted @ 2020-02-27 12:04 李福春 阅读(454) 评论(0) 推荐(2) 编辑
摘要:场景的变化 | 场景 | 特点 | 变化点 | | | | | | 老 | 复杂的业务逻辑 | | | 新 | 大量用户高并发访问 | 软件开发方法,过程管理,组织架构变化 | 垂直伸缩 提高服务器的硬件配置来支撑; 两个问题: 1. 物理服务器的硬件性能上限; 1. 投入的成本跟性能提升不成线性关 阅读全文
posted @ 2020-02-24 18:53 李福春 阅读(441) 评论(0) 推荐(1) 编辑
摘要:背景 最近团队中把只会做功能测试的测试岗位去掉了,那么软件质量的保证就落到了开发人员和产品人员的工作职责中了,不说这完全是一件坏事,这为开发岗位提出了更高的要求。 为了适应团队的变化,找了一门小课程补充了一下关于接口测试的知识和思维。本文是学习完毕之后的一个小结。 当成是学完之后的一个收货的输出,希 阅读全文
posted @ 2020-02-23 12:57 李福春 阅读(291) 评论(0) 推荐(0) 编辑
摘要:拦截器 拦截器分同步拦截器和异步拦截器; HandlerInterceptor 方法和执行时机 可以看DispathcerServlet的原来确定它的三个方法的执行时机; AsynHandlerInterceptor 看注释,主要用来清理在并发环境加清理ThreadLocal的数据; Respons 阅读全文
posted @ 2020-02-19 23:43 李福春 阅读(645) 评论(0) 推荐(0) 编辑
摘要:需求 maven依赖 打印sql 配置要点: 1. 驱动配置 application.properties 2. psy配置 aop打印持久层执行时间 使用aop实现; 启用aop注解: 小结 来个效果截图: 通过本片文章,你可以学会: 1. 给代码添加aop切面,增加日志或者打印出方法执行总耗时; 阅读全文
posted @ 2020-02-16 23:25 李福春 阅读(490) 评论(0) 推荐(0) 编辑
摘要:docker的下载安装和基本使用 我使用的mac,直接安装 "desktop" 。 然后命令行使用docker,关于desktop的使用,可以看 "官方文档" 。 安装好之后,确认一下是否可以运行,输入docker version指令试试。 docker的基本指令 docker info : 查看d 阅读全文
posted @ 2020-02-16 13:04 李福春 阅读(204) 评论(0) 推荐(0) 编辑
摘要:背景 程序员的任务是写代码【软件】,代码【软件】本身无价值,代码【软件】运行起来才能实现价值。 运行 以java程序为例: 首先把代码通过编译器编译成可执行代码。 运行过程:冯洛伊曼模型 1. 操作系统从磁盘中加载 程序(代码)到内存,程序变成了进程; 2. 操作系统调度cpu给到进程,完成计算任务 阅读全文
posted @ 2020-02-07 12:23 李福春 阅读(313) 评论(0) 推荐(0) 编辑
摘要:原理 项目的数据库字典表是一个很重要的文档。通过此文档可以清晰的了解数据表结构及开发者的设计意图。 通常为了方便我都是直接在数据库中建表,然后通过工具导出数据字典。 在Mysql数据库中有一个information_schema库,它提供了访问数据库元数据的方式。 什么是元数据呢?就是关于数据的数据 阅读全文
posted @ 2020-02-03 23:20 李福春 阅读(702) 评论(0) 推荐(0) 编辑
摘要:理论 异步的实现方式可以使用事件,或者异步执行; spring中自带了事件的支持,核心是ApplicationEventPublisher; 事件包括三个要点: 实战 代码路径:https://github.com/carterbrother/springbootpractice/tree/mast 阅读全文
posted @ 2019-08-15 16:29 李福春 阅读(171) 评论(0) 推荐(0) 编辑
摘要:问题:最近的项目经常需要做版本发布,但是版本发布老是出现问题,问题如下:比如,新手小接了一个新需求,一个功能开发完了,在本地环境和测试环境都测试通过了,把版本更新包提交到运维或者一线开发手上,发布到线上,通知开发,测试人员进行功能更新的确认;如果确认ok,更新结束;如果确认不ok,进入下面的循环;w... 阅读全文
posted @ 2015-09-18 03:25 李福春 阅读(3923) 评论(0) 推荐(1) 编辑
摘要:shiro最闪亮的四大特征是认证,授权,加密,会话管理。上一篇已经演示了如何使用shiro的授权模块,有了shiro这个利器,可以以统一的编码方式对用户的登入,登出,认证进行管理,相当的优雅。为了提高应用系统的安全性,这里主要关注shiro提供的密码服务模块;1,加密工具类的熟悉首先来个结构图,看看... 阅读全文
posted @ 2014-07-01 10:23 李福春 阅读(42313) 评论(0) 推荐(5) 编辑
摘要:最近在重构,有空学了一个简单的安全框架shiro,资料比较少,在百度和google上能搜到的中文我看过了,剩下的时间有空会研究下官网的文章和查看下源码,简单的分享一些学习过程;1,简单的一些概念上的认知2,使用认证的基本流程3,shiro集成spring完成简单的认证流程,已实现1建一个maven的... 阅读全文
posted @ 2014-06-27 14:53 李福春 阅读(36991) 评论(2) 推荐(2) 编辑
摘要:点登录的时候,在url后面总会加上一个;jsessionid=xxx 使找不到页面 的404 Bug ,百思不得其解,最后终于找到解决方案,实验最终成功解决了这个bug,下面是解决方案1,增加依赖 org.tuckey urlrewritefilter 4.0.3 2,在web.xml中配置过滤器... 阅读全文
posted @ 2014-04-30 17:43 李福春 阅读(459) 评论(0) 推荐(0) 编辑
摘要:1,架构2,技术架构3,应用的启动过程4,用户的访问过程(前端为静态的html页面,这里主要是后端)5,高级的地方,通过泛型,抽象了整个的MVC访问过程,对增删改查只写了一份代码,每一个新增的业务只需增加几个类,继承复用泛型类即可。add adminGameProductAdd list editlistadminGameProductEdit del list list list adminHomePage adminGameProductList public String modify() throws Exception { EditType editType = EditT... 阅读全文
posted @ 2014-03-13 17:02 李福春 阅读(1028) 评论(1) 推荐(1) 编辑
摘要:1,平台的服务器整体架构2,项目结构3,业务结构4,技术实现5,业务举例登录页:登录:其它的服务只是业务不同,这里省略...6,应用的启动过程资源准备7,json的封装public static void CrossDomain2(HttpServletResponse response, HttpServletRequest request, Object msg) throws IOException { response.setContentType("application/json"); final String call = request.getParamet 阅读全文
posted @ 2014-03-10 17:36 李福春 阅读(600) 评论(0) 推荐(0) 编辑
摘要:1,mybatis流程跟踪,原理理解 基本思路: 从SqlSessionFactory的初始化出发,观察资源的准备和环境的准备,以及实现持久层的一些过程;进入SqlSessionFactoryBean类,发现先执行的是然后是:在初始化类之后,做的准备工作如下:public void afterPropertiesSet() throws Exception { notNull(dataSource, "Property 'dataSource' is required");//1,检查spring准备的datasource是否ok notNull(sqlSe 阅读全文
posted @ 2014-03-05 14:16 李福春 阅读(14826) 评论(0) 推荐(0) 编辑
摘要:1,jsp的9大内置对象request,response,session,application,page,pageContext,out,config,exception查过资料了,现在补充一下;JSP中九大内置对象为:request 请求对象 类型 javax.servlet.ServletRequest 作用域 Requestresponse 响应对象 类型 javax.servlet.SrvletResponse 作用域 PagepageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Pagesession 会话对象 类型 ja 阅读全文
posted @ 2014-03-05 09:47 李福春 阅读(806) 评论(0) 推荐(0) 编辑
摘要:1,jsp的9大内置对象request,response,session,application,page,pageContext,out,config,exception查过资料了,现在补充一下;JSP中九大内置对象为: request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page sessi... 阅读全文
posted @ 2014-03-04 18:10 李福春 阅读(1) 评论(0) 推荐(0) 编辑
摘要:mybatis比较轻量,适合开发比较小型的或者业务比较复杂的系统;相对于hibernate来说可以灵活的写sql,更灵活的处理遇到的业务逻辑;可以说hibernate是pojo实体对db的orm映射,而mybatis是pojo对sql的映射;作为入门,先不考虑高级的特性,速度来一个CRUD再从源码和一个具体的业务来研究它的原理和高级特性;CRUD基本思路:作为一种比较流行的持久层ORM框架,相当于三层架构中的dao层;最终作为程序员的我们使用的SqlSession对象,先来个思路,再来个实现,最后研究细节;环境准备,结合springmvc,做一个对博客文章的crud,下面贴出配置文件先;第一列 阅读全文
posted @ 2014-03-03 14:43 李福春 阅读(6050) 评论(1) 推荐(0) 编辑