最近这个星期,临时有一个任务需要快速的为系统可视化界面提供数据接口,所以又需要把Java框架方面的重新拾一下,对开发人员来说就会涉及到怎么快速搭建系统架构且能够持续开发数据接口提供系统。
还记得刚接触Java语言的时候,
SSH(Spring+Struts+Hibernate)特别的流行,
到这几年基于
SSM(Spring+SpringMVC+Mybatis),
SpringBoot,
SpringCloud,等等,
本质上还是基于Spring这个强大的生态链和框架,Spring框架的思想改变了太多Java从业者,它的精华,不管流行开发的方式(微服务,分布式)怎么变换,本质的东西还在。
所以再这里发表一下自己对快速接口系统开发和架构学习的看法,当然自己的看法可能存在偏见和不足,所以欢迎大家指出。
如今开源的世界里,有太多的大神制作了很多非常好的轮子,作为一名开发人员,我们根本没有必要花太多的时间去重复造,更应该关心自己所在的业务场景。
这里就拿后台开发中常见的数据接口提供来举例,怎么快速的开发接口系统和接口系统架构学习:
1.如果需要快速的开发可持续迭代的Rest数据接口系统,通常的做法是提倡模块化,系统可以把数据提供业务底层做成SOA模块,然后通过分布式调用框架对外提供服务。
2.如果有离线数据接口部分,还可以单独做一个小的系统来运行定时任务,把Quartz集成进来。
3.如果有检索接口部分,加个全文检索:把Solr ,Elasticsearch集成进来。
4.如果有消息部分,加个消息系统:把AMQ,Kafka集成进来。
5.如果有处理日志部分,加个日志log4j,且日志要分布的化可以考虑logstash进来。
6.如果日志要批量或者近实时处理,可以加个Spark处理模块进来。
等等
当然一般也不会有公司会这么把所有的东西都这样集成在一起弄,流行微服务化,模块化,但是这种集成的方式,是个人理解,快速学习开发的一种快捷方式。
最后,当然想要高效和设计,把这些模块组织在一起,其实也是挺复杂的一件工程。
所以这里推荐多看官方文档和demo,附上路径:
Spring Framework 容器 [http://projects.spring.io/spring-framework/]
SpringMVC MVC框架 [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc]
Spring-boot & Spring-cloud 微服务 [https://projects.spring.io/spring-boot/][http://projects.spring.io/spring-cloud/]
Spring session 分布式Session管理 [http://projects.spring.io/spring-session/]
MyBatis ORM框架 [http://www.mybatis.org/mybatis-3/zh/index.html]
MyBatis Generator 代码生成 [http://www.mybatis.org/generator/index.html]
PageHelper MyBatis物理分页插件 [http://git.oschina.net/free/Mybatis_PageHelper]
Druid 数据库连接池 [https://github.com/alibaba/druid]
Dubbo 分布式服务框架 [http://dubbo.io/]
Redis 分布式缓存数据库 [https://redis.io/]
Solr & Elasticsearch 分布式全文搜索引擎 [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/]
Quartz 作业调度框架 [http://www.quartz-scheduler.org/]
Swagger2 接口测试框架 [http://swagger.io/]
领取专属 10元无门槛券
私享最新 技术干货