您的位置 首页 java

java易用框架&插件集合(持续更新)

java 的路线比较广阔,我个人是从事java后端开发的。因此着重后端技术的演进和聚焦后端框架的发展。

站在个人的角度,我认为java,或者说任何一门语言的把玩,都需要从几个大的维度去把控和衡量。

题外话,如果你觉得你对文章有兴趣可以关注我哦!如果想要内推阿里或其他主流公司请带简历私我邮箱(still-fantasy-jay@qq.com)

1.主流大框架和衍生品

从事java后端开发的攻城狮,总是离不开几个业界主流的框架:

1.1 java著名脚手架: spring 全家桶

牛逼指数:5

主流的java脚手架,继承了AOP,IOC(控制反转),依赖注入等基础能力;

spring像后勤部队,提供了作战所需的各种基础物资和能力;

并且,各大主流插件都适配了spring,可以进行无缝结合,强强联合。

1.2 著名ORM框架: mybatis

牛逼指数:4

Mybatis可以说是非常著名的”物流公司”了(DB与业务代码的桥梁和搬运工)

mybatis 简化了db与业务代码之间的交互逻辑,将繁琐的db交互封装成mapper接口,将db的业务表映射成 bean 实体,使得工程师能更加聚焦于业务实现,面向对象编程~~(没错,编程效率高的才会有对象,否则你这个时候还在加班,哪有时间去约电影泡温泉然后……)

1.2.1 ps:非主流ORM拓展包

tk.mybatis.mapper(

牛逼指数:4.5

通用mapper包,# [abel533](大神新作,基于mybatis开发,青出于蓝而胜于蓝。通常我们的mybatis需要bean,mapper映射,但是mapper的xml中有非常复杂的标签,看起来令人头晕目眩。而tk.mybatis的出现正好解决了这个问题,它封装了一个通用mapper接口,生成bean时带有db中table对应的标签,单表简单地CRUD操作可以省去xxxMapper.xml。通用mapper带来的好处也是显而易见的,比如当你的table有所改变是,只需要重新用generator生成下对应的实体bean即可,二不用焦头烂额地去挨个修改mapper中的关联标签,省时省力。

1.2.2 非主流mybaits分页拓展包:

tk.mybatis.pagehelper

牛逼指数 3.5

此拓展包同样出自# [abel533](大神之手,其原理是在拦截mybatis生成sql的过程,并向其注入分页代码“limit m,n”;

同时,于分页查询前实现count(*)获取总数量;

此举简化了分页的操作,释放了攻城狮的攻城时间;

1.3 RPC框架: dubbo (DubboX)

牛逼指数4.5

dubbo是阿里出的一个rpc框架,主要用于中大规模的RPC和服务治理;

dubbox是当当基于dubbo演化的一个版本;

dubbo 3.0中目前对dubbox一些功能进行了合并;

1.4 分布式任务调度框架:Elastic-Job

牛逼指数:3.5

ej是当当的亮哥(张亮)主导开发的一款基于zookeeper,quartZ的分布式任务调度框架,区别于传统的quartZ无法进行高并发任务执行,ej可在同一时间基于分片进行并发任务调度。其中任务又分为简单任务,流式任务(可以一直执行某一逻辑,直到db中的数据被消费完)。

之所以给3.5分的原因呢,是因为有一些坑!!!

比如,某些版本的业务失效转移存在bug(当集群中的某台机器重启,但任务并没有执行,会被其他机器误执行失效转移)

1.5 Google的java工具箱—— Guava 牛逼指数:5

Guava想必很多开发者都不陌生,其封装了对Collection集合类,String等常用java数据结构的处理能力Joiner和Splitter。使用的时候简洁高效。

另外其提供的缓存,重试器也比较实用,可以说是Google的良心出品了。以至于java的后续版本的改进也参考了Guava框架。

Guava简介传送门:

2.java 自带的易用框架

2.1 各种map及其 线程安全 版本:

比如常见的Hashmap(基于hash分布),TreeMap(基于红黑树)等;

多线程下的ConcurrentHashMap等;

要了解各种情况下时候用什么集合类,比如只要求map做缓存而不考虑读取顺序,就可以采用hashmap,

而treemap是带有顺序的,默认会按照ASCII码顺序排列元素。

2.2 各种List及其线程安全版本:

比如ArrayList(基于 索引 ),LikedArrayList(链表结构),HashSet,TreeSet等;

若是在顺序插入的情况下,适合用基于索引的ArrayList;

若存在大量的随机插入,则适合通LickedArrayList;

HashSet不保证迭代顺序,内部元素不重复,因此set适合做一些去重操作;

TreeSet与HashSet大同小异,顾名思义,TreeSet保证了内部元素的迭代顺序;

2.3 java8的新能力——函数式编程

2.3.1 lambda:

比如创建一个新线程可以写作 new Runable(() ->{doSomeThings()}).start();

简单明了;

2.3.2 集合类的steam()操作

Steam流式处理的出现大大提高了对集合类的处理能力,不仅简单易懂更是五花八门变化万千。可以说是非常的耐玩了。

steam提供许多的操作:

map() -> 将集合部分字段按照要求映射;

collect() -> 将集合按要求归并,归并的方法还有很多种玩法;

filter() ->过滤不符合要求的元素;

limit() ->限制元素数量;

sorted()->排序;

传送门:

文章来源:智云一二三科技

文章标题:java易用框架&插件集合(持续更新)

文章地址:https://www.zhihuclub.com/195533.shtml

关于作者: 智云科技

热门文章

评论已关闭

5条评论

  1. com 20 E2 AD 90 20Lloyds 20Chemist 20Viagra 20 20Generic 20Viagra 20Oman lloyds chemist viagra Here, the top liners nearly completed each otherГў s sentences

  2. 17 synthesized the lignan manassantin A derivative LXY6090, by replacing the tetrahydrofuran moiety of manassantin A with a cyclopentane ring

  3. Linezolid has been considered an agent of choice in complicated skin and soft tissue infections cSSTIs, It has the advantages of early intravenous to oral switch with the oral preparation having very high bioavailability and excellent tissue penetration 53, 54

  4. I won t Approved your adventure, In how long does it take for valsartan to work any case, now that you have captured the Fallen City, it is not a waste of time

网站地图