上一篇讲了企业开发的SSH这一套,这是java入门的必然之路, 基本所有的公司只要是做web开发,都要用到这些东西。如果某一个公司不用这些框架,自己编了一套,或者用的很偏,比如spring play framework,这样的公司基本可以不用待,因为在这些公司会把你的技术体系给框死,接触不到外面的世界,就想做oa系统维护的,做了十年,突然发现如果不做oa系统维护,自己什么也不会了。
这一篇讲讲java的常用组件。因为做项目开发,大的框架定了,剩下的就是开发了,但是开发中会用到各种各样的组件来简化开发或提高效率,常见的组件包括以下几类:
1、视图框架:freemarker
2、服务端校验:hibernate-validator
3、工作流:activiti,jbpm
4、任务调度:spring task、quartz
5、数据连接池:druid、dbcp、dbcp2
6、缓存:ehcache
7、日志:log4j、logback、log4j2
8、消息队列:rabbitmq、activemq
9、版本管理:git、svn
10、工具类:Apache commons、Dozer、guava、POI、Jackson
11、内存数据库:redis、mongodb
这些组件的引进会使开发变的非常便利。比如日志框架,这个会和spring整合的非常好,日志的处理不用担心。
比如Hibernate-validator,这个和Hibernate是没有必然关系的,这个是服务端的参数校验jar包。好多人会问,前端都校验过了,为啥后端还需要再校验,原因就是很多人会绕过前段,直接通过拼写url进行参数请求,这些时候就必须对参数进行校验了,不能等到系统报异常。
再比如数据源这个,能非常大的提升数据库连接效率,记得我上学那会还手写数据源,代码至今还保存这,就一个类,里面简单的进行数据库连接的管理。当时还是非常先进的,别人都是直连数据库,我这已经升级到数据连接池了。这地方推荐一个druid,中文名字是潘多拉,多么霸气的名字啊。说到这,阿里对他自身的各种框架取名还是比较屌的,比如伏羲调度系统,宙斯作业平台(阿里hadoop)。这个连接池非常稳定,我们做数据批量处理,连接几千万次,都不会出问题,而且这个自带sql监控和service监控功能,和spring能完美结合到一起,可以用界面的方式来查询哪些sql执行时间过长,哪些service执行有问题,还是比较不错的,推荐使用。
java生态体系完善的原因就在于不断有各种各样的组件加入到这个体系中,解决生产中出现的各种各样问题。谈到开源,国内做的比较好的就属阿里了。马云现在给阿里的定位是科技公司,而不是一个电商公司。这几年阿里为开源社区贡献了很多,比如dubbo(分布式服务治理平台)、fastJson、Rocketmq、Tidb、OceanBase、AliRedis等等,虽然有一些是阿里玩剩的,然后开源了,但是贡献还是非常大的。相比阿里,百度做的就差一些,常用的是echarts、ueditor,腾讯更寒碜了,没用过。腾讯越来越像一个商业公司,比如和oracle引入的腾讯云,等于是oracle在中国的代理商,不像阿里有很深的技术积累。当然这些都是商业策略,跟个人没关系,去BAT的任何一家都是很牛的,至少可以在很多人面前吹一吹,今天又和马云见个面,明天又偶遇马化腾,说者高高在上, 听的人热血沸腾,恨不能立马跳槽。所以现在中国经济的新引擎,新的三驾马车:马云、马化腾、马东敏。