Spring是目前java SE还是还是EE都是最主流的框架,强大的IOC(反转控制)和AOP(面向切面编程)成了Spring的核心板块,同时提供了展示层Spring MVC、持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术;本篇文章介绍的流程不仅仅是基于Spring的基础架构,而是公司在Spring的基础架构上做了大量的封装和融入了大量的技术沉淀后优化的内部框架,前面讲到java比php更有层次感,本篇文章将体现得更加明显。
结构介绍
以上目录机构为分层之后的企业级内部架构,各个层级间的关系以及功能作用都是相辅相成的关系
api:指向外部接口的接口层,主要功能在于为外部业务线提供功能接口,同时里面包含两大数据DTO,Request和Response,分别可以指定接口的入参和返回值。
dubbo:包含展示层Spring MVC、持久层Spring JDBC、逻辑处理以及业务事务管理。
-biz:逻辑处理层
-common:公共bean存放的地方,通常含有枚举bean以及公共处理方法等。
-dao:数据处理层,里面常常包含JDBC、Mybaitis等数据库处理。里面会与数据表对应生成对应的mapper处理器和数据返回DO数据包,mapper里面含有数据表基本的数据增删改查处理方法供使用。
-intergrate:外部接口接入,在接入外部项目的时候需在以下pom.xml中和外部dubbo对应的pom.xml中配置依赖。
-service:服务处理层,本架构中里面包含有处理回调(callback)、service和定时任务(task)。
-test:单元测试层。
-web:项目配置层,里面包含applicationContext、servlet、dubbo-comsumer、dubbo-provider、data-source、mybatis-config等这些配置。
开发流程
mapper的生成
数据表新建之后,必然要在mapper中生成对应的dao层处理器,数据库的操作体系是基于mybatis来的,生成后的mapper里面含有基础的数据库操作方法供使用,如若复杂的sql查询需自行添加mapper方法以及对应的mapper中xml配置的sql语句即可;类似于php中的Model,基于ORM提供了大量的数据库操作方法供使用。
mapper配置地址:
java-xxx-agent-dubbo-dao/src/test/resources/generator/generatorConfig.xml
1 | <table tableName="bja_activity_chance" domainObjectName="ActivityChance"> |
生成地址:
java-xxx-agent-dubbo/xxx-agent-dubbo-dao/src/test/java/com/xxx/agent/generator/Generator.java
先配置参数,再执行生成。
枚举编写
如若业务中需要涉及到枚举的地方,需要在common中添加对应的枚举。
编写biz
biz层是比较重要的一个层级,里面包含逻辑及业务处理,它的调用方通常是dao层和intergrate层,它的被调方通常是service层。
编写intergrate
如若有外部项目接口接入才需要涉及到这个层,上一篇博客已有详细说明。
编写service
编写服务层,主要实现的是api中的interface,它的调用方通常是biz层。
编写api
api里面将规划对外的接口,包含Request和Response,分别制定入参和返回值方案。
单元测试
写完接口需要在test中实现单元测试,以保证接口的畅通性。
服务添加提供者
路径:
java-xxx-agent-dubbo/xxx-agent-dubbo-web/src/main/resources/dubbo/dubbo-provider.xml
编写的新服务需要添加到提供者配置文件中,已确保外部在调用接口的时候能正常使用。
1 | <dubbo:service timeout="10000" cluster="failfast" ref="monitorService" interface="com.xxx.agent.service.api.IMonitorService" /> |