- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 记一次中小公司的研发问题
一、一些不好的现状,及对应的改进方法1、前后端代码绑定在一起,很难维护,前端UI做得太差,后端也需要大的改善。改进方法:前后端代码分离,一些人做专业的前端,提高前端UI质量,一些人专注于后端优化。前期可以先重构,先从技术上把前端代码和后端代码分离,然后专注规范和优化前端(包括html、js和css),同时相应地简单重构后端。后期划分人员职责,前端代码交由专门的前端开发工程师维护,新...
2019-01-25 18:39:59 12903 7
原创 Spring配置加载ContextLoaderListener和DispatcherServlet的区别和关系
在Spring应用的web.xml里面可以配置ContextLoaderListener和DispatcherServlet: <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:...
2019-01-25 18:39:48 2928 1
原创 Spring ImportBeanDefinitionRegistrar的用法
以org.mybatis.spring.annotation.MapperScan为例,来说明ImportBeanDefinitionRegistrar的用法 这个注解源代码如下: @Target(ElementType.TYPE) @Import(MapperScannerRegistrar.class) public @interface MapperScan...
2019-01-25 18:39:41 4144
原创 tomcat和tomcat-embed的区别比较
1、tomcat和embedded tomcat都是 Apache Tomcat官方发布的,从官网上看,从Tomcat 7开始, tomcat和embedded tomcat版本是同步发布的。如下所示,7.0.78版本:Core: zip (pgp, md5, sha1) tar.gz (pgp, md5, sha1) 32-bit Windows zip (pgp,...
2019-01-25 18:39:28 35631 1
原创 基础框架开发和维护经验
Main方法执行完之后,JVM不退出,解决方案:原因:因为Main方法执行完之后,有线程未关闭,所以JVM肯定不会退出,解决方法1(治本):使用debug方式运行main,看Eclipse的debug界面或者看jstack,找出main方法结束后还在运行的线程,将其stop即可。解决方法2(治标):在main方法的最后,加上一句 System.exit(0);...
2019-01-25 18:39:21 5489
原创 Maven Archetype使用说明
1、使用Archetype生成工程代码 主要命令:mvn archetype:generate 示例:mvn archetype:generate -DarchetypeCatalog=local archetypeCatalog参数,用来指定maven-archetype-plugin读取archetype-catalog.xml文件的位置,位置有以下几种类型:i...
2019-01-25 18:39:08 2102
原创 Java web应用服务器对比(Tomcat、JBoss、Jetty等)
官方介绍:Apache TomcatApache Tomcat is an open source software implementation of theJavaServlet and JavaServer Pages technologies and developed by the Apache Software Foundation (ASF).JBoss En...
2019-01-18 20:36:28 4038
原创 Spring tomcat下html url找不到
为什么有Controller配置的:@RequestMapping("/sys/aaa.html")String hosdsdsdsfdme() { return "sys/main.html";}但是这个地址找不到?http://localhost:8080/renren-security/sys/aaa.html补充现象:只有.html后缀会找不到。换成.pn...
2019-01-18 20:34:15 907
原创 Logback的深度使用经验和最佳实践
首先,日志的记录方案,在另一篇文章中单独说明:http://blog.zollty.com/b/archive/plan-for-java-project-log.html在该文章中,说明了Logback的下面5个功能:1、使用logback的环境变量定义和读取功能;2、在logback启动之前,继承ch.qos.logback.core.status.OnConsoleStatu...
2019-01-18 20:34:03 2452
原创 Log4j2配置及与Logback对比
Log4j2 使用和配置一、Maven配置1、与SpringBoot集成 <!--====================logrelated--> <dependency><!--exclude掉spring-boot的默认log配置--> <groupId>org.springf...
2019-01-18 20:33:58 16117 6
原创 Logback最佳实践和使用指导
一、概述 1、采用dev(开发环境)、test(测试环境)、pre release(预发布、准生产环境)、production(生产环境)等不同的日志配置,根据系统变量、环境变量等自动识别。2、特殊的记录,需要大批量写入日志文件,应该采用异步线程写文件。 二、日志输出(Appender)分类 分为5个基础类: FILE_EXCEPTION (异常日志,包括E...
2019-01-18 20:33:41 2571
原创 ElasticSearch集群部署和使用
Installation参考文档:https://www.elastic.co/guide/index.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/current/index.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/curren...
2019-01-18 20:33:32 552
原创 mybatis最佳实践
原则:1. sql和代码分离,sql易于维护和 检查评审。2. 高度的自动化和封装,减少开发工作量。从原则上讲: 要避免像hibernate那样过度封装,形成很多新的语法(HSQL), 也不能像jdbc那样,SQL和代码混写,不方便检查和审核。 Mybatis的Example用法,其实不过是sql拼接的语法糖,和sql与代码混写没多少区别,故不推荐使用,...
2019-01-18 20:33:14 2250 4
原创 Maven问题记录
Maven问题解决记录: 1、远程仓库中有jar,但是编译时找不到。 问题描述:Failed to execute goal on project amps-dcm: Could not resolve dependencies for project com.zollty.pss:amps-dcm:war:0.0.1-SNAPSHOT: The following artif...
2019-01-17 18:26:15 1348
原创 MySQL 5.7安装和初始化
一、WINDOWS下安装详细步骤,参见这个文档:https://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html文档中,涉及以下几个小结: 2.3.5.1 Extracting the Install Archive——解压,然后配置环境变量(也可以不配置,配置只是为了方便执行命令) 2.3.5...
2019-01-17 18:21:49 3947
原创 Spring Bean高级配置方法大全
案例一:组合配置(1)枚举类型的属性(2)使用构造函数赋值(3)property结点下面用bean作为value<bean id="jacksonMapper" class="org...Jackson2ObjectMapperFactoryBean"> <property name="objectMapper"> <!-- bean标...
2019-01-17 18:21:10 540
原创 深入解读JSP的底层解析过程
互联网上,这方面的资料实在太少了,故把自己研究的一些结果公布出来。 首先,问大家几个问题,看大家能不能回答出来,或者在网上能不能找到答案:1、page、include、taglib这三个编译指令,执行的顺序是什么?2、JSP文件中的Java代码、编译指令、动作指令、EL标签、第三方标签、静态文本等,被编译的顺序是什么?3、常用的、与JSP解析/编译相关的类有哪些?换句话说,JS...
2019-01-17 18:19:42 2379
原创 精通Log4j配置
本文根据官方文档,及长期的实践经验总结而出。 一、logger、appender、layout Log4j can send your log messages to the console, a text file, an html file, an xml file, and so on. 日志制造者logger: send your message strings...
2019-01-17 18:19:25 520
原创 vagrant VBoxManage.exe: error: Could not rename the directory the settings file (VERR_ALREADY_EXISTS
vagrant up报错如下:VirtualBox error:VBoxManage.exe: error: Could not rename the directory 'D:\C\devsoft\VirtualBoxVMs\barge_docker_vm_1547606280951_49241' to 'D:\C\devsoft\VirtualBoxVMs\barge_docker_v...
2019-01-16 10:46:07 4845
原创 OLTP和OLAP的区别
一、联机事务处理OLTP(on-line transaction processing) 主要是执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。 OLTP的特点一般有: 1.实时性要求高。我记得之前上大学的时候,银行异地汇款,要隔天才能到账,而现在是分分钟到账的节奏,说明现在银行的实时处理能力大大增强。 2.数据量不是很大,生产库上...
2019-01-09 13:07:47 1742
原创 数据库之数据类型参考资料
一、Oracle表结构移植到Mysql中需要的类型转换MYSQL ORACLEBLOB(220) RAW(220)BLOB (20) RAW(20)BLOG(1024) RAW(1024)VARCHAR(n) VARCHAR2(n)CHAR ...
2019-01-09 13:07:40 546
原创 内存缓存之HashMap、EHCache、Guava Cache对比
缓存不应该被过度使用,在不同场景下,选用不同的方式缓存数据。 简单场景,存入一些占用内存不多的数据,而且这些数据不会主动发生变化,服务器启动后就永久存储,修改和删除都是全手动执行。而且服务器重启时不需要再自动恢复到之前的状态。这种数据直接用Map等放到内存中即可。 而一个标准Cache的主要特征有: 过期时间 容量规划(重要) 清除策略(重要) ...
2019-01-09 13:07:30 6790
原创 代码分支管理规范
代码分支管理规范:(主要基于GIT,但SVN也可借鉴) 核心思想: 控制代码提交权限,保证主分支和tag分支都是经过测试验证的,保证测试分支不被随意更改。 另外支持对提交的代码进行审查。 支持多分支并行开发,保证版本管理严谨、不混乱。 从项目仓库A(称之为测试和发布仓库)中master拷贝一个分支出来,例如 branch_1.0.0这个仓库A,包括它...
2019-01-09 13:07:15 2419
原创 密码安全解决方案
一、密码存储安全不存储明文密码,也不存储密码的MD5(现在的技术可以破解MD5,不安全)。 建议方案:采用加盐、不可逆的密码算法,并且使得同一个明文密码,每次加密结果都不一样。 二、一般安全性措施1、防止用户无限次尝试密码,暴力登录方案举例:某个用户密码输错3次后,锁定该用户1分钟,如果输错10次,锁定2小时。 2、日志脱敏禁止把用户的明文密码 打印到日志中...
2019-01-09 13:07:05 5402
原创 Session和Cookie原理
一、Session术语、通常意义上的概念 Session的英文含义为:会议,或者代表进行某活动、会议连续的一段时间(会期、学期)。 在计算机里面,通常是指某个连接或者操作的连续时间。Session的含义不仅仅局限于常见的HttpSession、浏览器会话,Session是一个广义的概念,HttpSession只是session的一种代表,比如对象的生命周期其实也可以看做是一个ses...
2019-01-09 13:06:57 353
自制Gshop Editor V155版本,完美EL编辑器(目前唯一能用的155版本,自己写的,如需帮助,请联系作者)
2021-02-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人