当前位置: 首页 > news >正文

东莞企业营销型网站策划银川公司做网站

东莞企业营销型网站策划,银川公司做网站,成全视频免费观看在线看主演,交流网站建设心得体会创建Order项目实现Clean Hexagonal架构 前言 在上一节中#xff0c;讲到了Clean Hexagonal架构的理论部分#xff0c;并且通过图形解释了从MVC架构到清洁架构到演变。下面我们通过创建项目的方式来进一步理解Clean Hexagonal架构。 1.项目创建 1. 项目…创建Order项目实现Clean Hexagonal架构 前言 在上一节中讲到了Clean Hexagonal架构的理论部分并且通过图形解释了从MVC架构到清洁架构到演变。下面我们通过创建项目的方式来进一步理解Clean Hexagonal架构。 1.项目创建 1. 项目整体结构规划 项目采用 Maven 多模块架构父模块聚合子模块依赖层级清晰。 结构说明 order-system/ # 父项目聚合所有子模块 ├── .git # Git 仓库目录 ├── .gitignore # Git 忽略规则如 target/、.DS_Store 等 ├── .idea/ # IntelliJ IDEA 配置目录自动生成 ├── order-service/ # 订单服务模块子模块 │ ├── order-application/ # 应用层接口、DTO、服务入口 │ ├── order-container/ # 容器配置Spring Boot 启动类 │ ├── order-dataccess/ # 数据访问层DAO、JPA/MyBatis 实现 │ ├── order-domain/ # 领域层领域模型、领域服务 │ ├── order-message/ # 消息处理MQ 消费者/生产者 │ └── pom.xml # 子模块的 pom 文件 └── pom.xml # 父模块的 pom 文件1.1 父项目order-system 父项目聚合了所有的子模块进行统一的依赖管理对应的pom文件如下 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.4.1/versionrelativePath //parentgroupIdcom.jackmouse/groupIdartifactIdorder-system/artifactIdversion1.0-SNAPSHOT/versionpackagingpom/packagingmodulesmoduleorder-service/module/modulespropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven-compiler-plugin.version3.13.0/maven-compiler-plugin.version/propertiesdependencyManagementdependenciesdependencygroupIdcom.jackmouse/groupIdartifactIdorder-domian-core/artifactIdversion${project.version}/version/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-application-service/artifactIdversion${project.version}/version/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-application/artifactIdversion${project.version}/version/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-dataaccess/artifactIdversion${project.version}/version/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-message/artifactIdversion${project.version}/version/dependency/dependencies/dependencyManagementdependencies/dependenciesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion${maven-compiler-plugin.version}/versionconfigurationrelease17/release/configuration/plugin/plugins/build/project1.1 order-container容器/启动模块 作用 包含 Spring Boot 的主启动类Application.java是项目的入口。负责整合所有子模块的依赖如 order-application、order-dataccess 等。配置全局属性如数据源、消息队列连接、Web 端口等。 示例代码 SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.jackmouse/groupIdartifactIdorder-service/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdorder-container/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.jackmouse/groupIdartifactIdorder-domian-core/artifactId/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-application-service/artifactId/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-application/artifactId/dependencydependencygroupIdcom.jackmouse/groupIdartifactIdorder-message/artifactId/dependency/dependencies /project1.2 order-application应用层 作用 调用领域层order-domain。处理输入输出如接收 HTTP 请求返回 DTO 对象。 pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.jackmouse/groupIdartifactIdorder-service/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdorder-application/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.jackmouse/groupIdartifactIdorder-application-service/artifactId/dependency/dependencies/project1.3 order-domain领域层 作用 核心业务逻辑和领域模型如 Order 实体、OrderStatus 值对象。定义领域服务如校验订单规则的 OrderValidator。声明仓储接口如 OrderRepository但不实现具体逻辑。 可以将domain层在细化为service层和core层service层实现具体的业务逻辑和外部接口的定义core层定义实体和值对象。 关键文件 Order.java领域实体 public class Order {private Long id;private String orderNumber;private BigDecimal totalAmount;public void cancel() {// 领域逻辑校验订单是否可取消if (this.status OrderStatus.SHIPPED) {throw new IllegalStateException(已发货订单不可取消);}this.status OrderStatus.CANCELLED;} }pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.jackmouse/groupIdartifactIdorder-service/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdorder-domain/artifactIdpackagingpom/packagingmodulesmoduleorder-domian-core/modulemoduleorder-application-service/module/modulespropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties/project1.4 order-dataccess数据访问层 作用 实现领域层定义的仓储接口如 OrderRepositoryImpl。集成 ORM 框架如 JPA、MyBatis操作数据库。处理数据持久化细节如分页查询、事务管理。 关键文件 OrderRepositoryImpl.java仓储实现 Repository public class OrderRepositoryImpl implements OrderRepository {Autowiredprivate JdbcTemplate jdbcTemplate;Overridepublic void save(Order order) {String sql INSERT INTO orders (...) VALUES (...);jdbcTemplate.update(sql, ...);} }pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.jackmouse/groupIdartifactIdorder-service/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdorder-dataaccess/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.jackmouse/groupIdartifactIdorder-application-service/artifactId/dependency/dependencies/project1.5 order-message消息处理模块 作用 处理异步消息如订单创建后发送 Kafka 事件。定义消息生产者如 OrderEventPublisher和消费者如 PaymentEventListener。解耦系统间通信支持事件驱动架构。 关键文件 OrderEventPublisher.java消息生产者 Component public class OrderEventPublisher {Autowiredprivate KafkaTemplateString, OrderEvent kafkaTemplate;public void publishOrderCreated(Order order) {OrderEvent event new OrderEvent(order);kafkaTemplate.send(order-topic, event);} }pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.jackmouse/groupIdartifactIdorder-service/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdorder-message/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.jackmouse/groupIdartifactIdorder-application-service/artifactId/dependency/dependencies/project2.生成依赖图 使用depgraph-maven-plugin插件可以生成项目的依赖关系。 首先要在系统安装graphvizhttps://www.graphviz.org/ mac使用brew安装过程中可能会因为系统版本高导致报错 使用–build-from-source命令用从源代码安装如 brew install --build-from-source graphviz安装完成后在项目的根目录执行 mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DcreateImagetrue -DreduceEdgesfalse -Dscopecompile -Dincludescom.jackmouse*:*com.jackmouse为你自己的包路径执行成功后 项目的target目录下会生成png文件 可以看到domain层不依赖于其他任何外部部组件所有外部服务如数据库、消息队列、外部服务都通过接口和适配器与业务逻辑交互。核心业务逻辑保持独立易于测试和替换使得系统具有更好的扩展性和灵活性。
http://www.hkea.cn/news/14449596/

相关文章:

  • 用数字做域名的网站郑州seo技术服务顾问
  • 赛罕区城乡建设局网站哪些大型网站用mysql
  • 企业app定制开发公司东莞网站seo
  • 手机网站建站流程北京国际建设集团网站
  • 服装网站模板深圳协会网站建设
  • 网络空间 网站 域名软件定制图片
  • 网站备案核验单怎么选网站安全维护怎么做
  • 怎样做投资与理财网站大连网络推广公司推荐
  • 网站系统建设合同河南宣传片制作公司
  • 贵阳好的网站建设公司多钱网网站
  • 合肥建设网站哪家好注册新公司的流程
  • ks刷粉网站推广马上刷如何自己制作游戏软件
  • 搜索网站制作教程金山区网站制作
  • 程序员 修电脑 做网站随机关键词生成器
  • 海南中小企业网站建设南城微网站建设
  • 怎样看网站的建设时间网站ftp查询
  • 营销网站建设企划案例12380网站建设情况汇报
  • 阳泉住房和城乡建设厅网站百度seo发帖推广
  • 网站首页做多大分辨率wordpress 下雪插件
  • 视频网站开发视频教程北京网站建设百度排名
  • 宁波公司网站开发网络销售平台推广
  • 做普通网站公司吗四川建设网中标候选人公示
  • 做全景效果图的网站网站建设公司怎么找业务
  • 搜搜提交网站怎样弄微信公众号
  • 网站如何做3d产品展示丝芭传媒有限公司
  • 程序员为什么35岁就不能干?合肥市网站优化
  • 网站开发的软 硬件环境标准请求做女朋友的网站源码
  • 怎么自己做网站的推广杭州编程培训机构排名
  • 重庆万州网站建设多少钱iis 一个网站多个应用程序
  • 网站维护的基本内容有哪些信息展示网站系统