Python工程师Java之路(p)Maven聚合和继承

Java工程师如何用LangChain4j+DeepSeek快速构建工业诊断Agent Agent(智能体)是大语言模型与业务系统深度集成的核心范式,其本质是通过工具调用(Function Calling)实现LLM的决策闭环。LangChain4j作为专为Java生态设计的Agent框架,将OpenAI兼容协议封装为强类型、可调试、可运维的Spring原生组件,显著降低AI工程化门槛。它支持自动解析@Tool注解生成函数Schema、无缝集成ChatMemory状态管理、并复用Spring事务与监控能力,特别适用于工业诊断、IoT告警分析、企业服务编排等需高可靠性与可追溯性的场景。本文以De 阅读详情

依赖管理

指当前项目运行所需的jar,一个项目可以设置多个依赖

<!-- 设置当前项目所依赖的所有jar -->
<dependencies>
    <!-- 设置具体的依赖 -->
    <dependency>
        <!-- 依赖所属群组id -->
        <groupId>org.springframework</groupId>
        <!-- 依赖所属项目id -->
        <artifactId>spring-webmvc</artifactId>
        <!-- 依赖版本号 -->
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

可选依赖和排除依赖

可选依赖和排除依赖的区别

  • 可选依赖(optional):对外隐藏当前所依赖的资源
    A依赖B,B依赖C,C不想被A依赖进来
<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_03_pojo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
    <optional>false</optional>
</dependency>
  • 排除依赖(exclusions):主动断开依赖的资源,被排除的资源无需指定版本
    A依赖B,B依赖C,A不想将C依赖进来
<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_04_dao</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--排除依赖是隐藏当前资源对应的依赖关系-->
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

继承与聚合

  • 聚合:
    将多个模块组织成一个整体,同时进行项目构建的过程

  • 聚合工程:
    通常是一个不具有业务功能的空工程(有且仅有一个pom文件)

  • 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建。
    当工程中某个模块发生更新(变更)时,必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题。

  • 继承描述的是两个工程间的关系,子工程可以继承父工程中的配置信息,常见于依赖关系的继承

  • 作用:
    1、简化配置
    2、减少版本冲突

1、创建工程

2、创建模块


打包类型说明
jar打包成jar,是默认的打包方式
war打包成war,发布在服务器上
pom用在父级工程或聚合工程,用于版本控制

聚合

<packaging>pom</packaging>
<modules>
    <module>module1</module>
    <module>module2</module>
</modules>

继承

<parent>
    <groupId>org.example</groupId>
    <artifactId>project1</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>
UML 2.5 实战:3分钟用PlantUML绘制类图,自动生成代码骨架 本文详细介绍了如何使用PlantUML在3分钟内快速绘制UML类图并自动生成代码骨架。通过实战示例展示电商系统建模、高级关系表达及多语言代码生成技巧,帮助开发者提升软件系统建模效率。特别适合需要快速实现从设计到代码落地的开发团队。 阅读详情

相关推荐

Codex不是编程工具,而是AI工程师代理:GPT-5.5驱动的生产力革命

AI编程助手已从代码补全进化为任务代理系统,其核心是自然语言驱动的规划-执行-验证闭环。Codex依托GPT-5.5大模型,凭借400K上下文窗口实现项目级全局理解,并通过Token效率优化显著降低单次任务成本。这种能力使非技术人员也能通过精准需求描述,完成数据清洗、API文档生成、设计稿转代码等工程化任务,本质是将‘写代码’降维为‘提需求’。本文聚焦Codex作为AI工程师代理的底层逻辑、零配置Web版快速上手路径,以及Vue/Express/Python等主流技术栈的5大生产级实战场景。

weixin_30879833的博客 416

JUnit4测试分类成功率自动化跟踪与季度评审实践指南

在软件工程实践中,单元测试是保障代码质量的核心环节,其执行结果直接反映了软件模块的稳定性。JUnit作为Java领域最主流的测试框架,其测试用例的组织与执行原理是构建可靠测试体系的基础。通过引入测试分类(如按业务模块、测试类型)的概念,可以对测试结果进行精细化度量,这不仅能提升测试的工程价值,还能为团队提供更准确的质量洞察。在实际应用场景中,结合Maven/Gradle等构建工具和CI/CD流水线,可以实现测试数据的自动化采集与聚合。本文聚焦于如何利用Python脚本解析Surefire报告,并基于测试分类

weixin_34221036的博客 447

软件工程师的AI协同工作流重构指南

在AI深度融入研发体系的今天,'软件工程师'正从代码生产者演变为AI协作者。其核心不在于掌握大模型原理,而在于理解AI如何通过上下文感知、约束建模与反馈闭环,增强设计、编码、测试与运维全链路。'AI协同'的本质是将隐性经验显性化、重复路径标准化、人工决策点精准锚定;'工作流重构'则体现为从IDE补全到CI/CD集成、从告警分析到产品共创的系统性升级。本文聚焦工程落地视角,覆盖本地化模型选型、RAG知识注入、提示词工程、安全沙箱及团队协作范式,帮助开发者构建可验证、可审计、可进化的AI增强工作流。

love android 852

Vibe Coding:从技术氛围到简历竞争力,打造工程师个人品牌

在软件开发领域,工程师的个人技术品牌与职业竞争力日益受到重视。其核心在于超越单纯的技术栈罗列,构建一种综合性的技术能力与工程思维体系。这种体系通常涵盖问题解决导向、工程化实践、持续学习与业务价值实现等多个维度。从技术原理层面看,它要求开发者不仅掌握工具使用,更要理解其背后的设计思想与最佳实践,例如在项目中合理运用设计模式、CI/CD流水线、容器化部署等技术,以提升代码的可维护性与系统可靠性。这种综合能力的技术价值在于,它能帮助工程师在团队协作中更高效地交付高质量软件,并快速适应技术变革。其应用场景广泛,无论

weixin_30621711的博客 373

Spark Word Count Java实战:从单机到分布式的核心原理与避坑指南

Word Count是理解分布式计算的入门范式,其本质是将单机数据处理逻辑映射到集群环境下的数据分片、并行计算与资源调度全过程。它揭示了RDD血缘、Shuffle机制、JVM内存模型及序列化协议等底层原理,技术价值在于暴露真实生产环境中的典型问题,如Task not serializable、OutOfMemoryError、类加载冲突和路径协议误用。应用场景覆盖本地调试、YARN部署、HDFS/S3数据读取及性能调优,尤其适用于Java工程师向大数据领域转型的首站实践。本文聚焦Spark on YARN

weixin_34059951的博客 355

MySQL数据库从零到实战:安装配置、SQL核心语法与Python/Java连接指南

最近在帮团队新人搭建开发环境时,发现很多同学卡在了数据库配置这一步,尤其是 MySQL 的安装、连接和基础操作,网上教程要么版本过时,要么步骤不全,导致反复踩坑。本文将从零开始,手把手带你完成 MySQL 的安装、配置、基础操作到核心概念理解,并提供完整的代码示例和避坑指南。无论你是刚接触数据库的学生,还是需要快速上手 MySQL 进行项目开发的工程师,都能从本文获得一套可直接复用的实战方案。 1. MySQL 核心概念与背景 1.1 什么是 MySQL? MySQL 是一个开源的关系型数据库管理系统(RD

weixin_30326515的博客 466

Java中用DJL集成DeepAR实现时序预测的工程实践

时序预测是供应链、IoT和金融风控等场景的核心能力,其本质是基于历史序列建模动态时间依赖关系。Autoregressive模型(如DeepAR)通过概率化自回归机制,在保障预测精度的同时输出置信区间,显著提升业务决策鲁棒性。在Java技术栈中,直接集成Python深度学习模型常面临部署割裂、运维复杂与性能瓶颈等问题。DJL作为专为Java优化的深度学习框架,通过time-series模块无缝桥接gluonTS生态,支持MXNet/PyTorch多引擎切换、标准化模型加载与协变量感知的数据抽象,使时序预测能力

688

Java与.NET技术栈深度对比:从JVM到.NET Runtime的工程实践差异

Java和.NET作为企业级开发两大主流技术栈,其本质差异远不止于语法或语言特性,而根植于底层运行时设计哲学——JVM强调内存模型共识与系统级调优能力,.NET Runtime则依托跨平台重构与工具链深度集成。这种差异直接塑造了各自的依赖管理机制(Maven中央治理 vs NuGet联邦自治)、架构演进路径(Spring Boot约定优于配置 vs ASP.NET Core显式即正义)以及生产就绪能力(Actuator全息监控 vs Health Checks分层诊断)。在云原生、信创适配与AI编码辅助等新

SailingAptech的专栏 441

Java开发者转型大模型开发的工程化实践与优势

大模型开发作为AI工程化的重要领域,需要算法与工程能力的有机结合。在分布式系统架构中,Java开发者积累的微服务治理、性能优化等经验可直接迁移至模型训练与推理场景。通过Spring Boot构建模型API服务、利用MyBatis处理训练数据等实践,展现了Java技术栈与AI领域的天然互补性。特别是在企业级应用中,Java工程化能力可有效解决模型服务化的高并发、低延迟等挑战,如通过请求批处理提升吞吐量、集成熔断机制保障服务可用性。对于希望转型的开发者,掌握Python工具链与分布式训练原理后,可快速成为AI工

weixin_30432579的博客 379

从零搭建JFrog Artifactory制品仓库:Docker部署与核心配置指南

制品仓库是现代软件开发和DevOps实践中不可或缺的基础设施,它通过集中化管理二进制依赖和构建产物,解决了依赖不一致、构建效率低下等核心痛点。其工作原理是作为统一的“可信源”,对所有包格式(如Maven、npm、Docker)进行存储、缓存和分发,确保从开发到生产环境的二进制一致性。在技术价值上,制品仓库不仅提升了团队协作效率和构建速度,更是实现CI/CD流水线、保障软件供应链安全的关键环节。本文聚焦于如何通过Docker Compose快速部署业界流行的JFrog Artifactory,并详解其远程仓库

weixin_34297704的博客 591

工程师基本功四大支柱:语言内功、工程化、系统思维与沟通抽象

软件开发基本功是支撑高质量交付的底层能力体系,其核心在于对编程语言运行机制的直觉理解、工程化实践(Git规范、依赖管理、自动化测试、可观测性)、全链路系统思维以及技术到业务的语言转化能力。这些能力共同构成代码可维护性、故障可追溯性与团队协作效率的基础保障。尤其在微服务架构与云原生演进背景下,扎实的基本功比框架熟练度更能决定线上稳定性与迭代速度。本文聚焦Java/Python/Go等主流语言场景下的真实工程痛点,如空指针定位、SQL索引失效、日志缺失traceId、接口变更不同步等典型问题,系统梳理可日常锤炼

unixboy 496

Java与.NET程序员的本质差异:工程操作系统级对比

Java和.NET早已超越编程语言范畴,演变为两套深度耦合基础设施、运维体系与开发范式的‘工程操作系统’。其核心差异源于运行时设计哲学——JVM追求跨平台抽象一致性,CLR强调API契约下的平台行为可预期;构建体系上,Maven依赖中央权威保障可重现性,NuGet采用联邦自治提升企业可控性;应用生命周期中,Spring的IoC容器以插件化解耦见长,ASP.NET Core中间件管道则以执行路径透明取胜。这些底层分野直接决定分布式事务处理、实时通信性能、Windows生态集成等关键场景的技术选型。理解Java

SailingAptech的专栏 551

FDE前沿部署工程师:100个实战项目构建硬核作品集指南

容器化与云原生技术是现代软件部署和运维的基石,其核心在于通过Docker等容器技术实现应用的环境标准化与隔离,并借助Kubernetes等编排系统实现自动化部署、扩展和管理。这项技术的核心价值在于提升了应用交付的效率、可靠性和可移植性,是支撑微服务架构、持续集成与持续部署(CI/CD)的关键。在实际工程实践中,这些技术被广泛应用于构建自动化流水线、实现系统的可观测性以及保障生产环境的安全与合规。对于希望提升竞争力的部署工程师而言,掌握从基础设施即代码(IaC)、服务网格到AI/MLOps部署等全链路技能至关

weixin_33816300的博客 410

MySQL 入门实战:从安装建表到 SQL 索引优化

关系型数据库是现代应用开发的核心基础设施,而结构化查询语言则是与数据交互的通用语言。理解数据库工作的基本原理,掌握建库建表、增删改查、条件过滤与聚合分组等操作,是每一个开发者构建数据驱动应用的前提。在实际工程中,数据查询效率与数据一致性尤为关键,这便涉及到索引机制与事务处理的应用价值。合理的索引能显著提升查询响应速度,而事务则保障了业务在复杂操作下的可靠性与持久性。从 Web 应用的后端存储,到数据分析、报表统计,掌握这些核心技术都能帮助工程师高效地解决数据管理问题,并为后续深层次的性能调优打下坚实基础。本

weixin_33928137的博客 341

Java团队如何用Ollama实现大模型本地化集成

大模型本地部署是企业级AI落地的关键环节,其核心在于推理运行时与业务系统的低耦合集成。Ollama作为轻量级、OpenAI兼容的模型服务框架,凭借Go语言实现的稳定显存管理、标准HTTP/SSE接口及Unix哲学设计,成为Java技术栈的理想适配层。相比VLLM或Dify等重型平台,Ollama规避了JVM GC干扰GPU、协议黑盒、运维不可控等工程风险,使Spring Boot能以WebClient原生调用方式完成流式响应、熔断限流与全链路监控。本文聚焦Java工程师可掌控的实战路径:CentOS环境下的

369

企业内网安全获取开源包的三层代理架构

开源包管理是现代软件研发的基础能力,其核心在于解决依赖分发的可靠性、一致性和安全性问题。原理上,需在防火墙策略约束下实现对外源的安全代理、对内请求的可控分发与对包内容的真实性校验。技术价值体现在规避白名单泛化风险、降低供应链攻击面、支撑多语言统一治理。典型应用场景包括金融、制造等强合规行业中的CI/CD流水线、本地开发环境和私有云基础设施。本文聚焦于Corporate Firewalls与Open-Source Packages协同下的Safely落地实践,详解三层隔离架构如何将信任从网络层迁移至数据层。

weixin_34159110的博客 426

基于Apache Spark的互动数据处理实战:从环境搭建到流程部署

数据处理是现代应用的核心环节,其核心原理在于对海量、多源的数据进行高效采集、清洗、转换与分析,以提取业务价值。Apache Spark作为统一的大数据处理框架,凭借其内存计算、丰富的API(如DataFrame、SQL)以及对批流一体的支持,为构建高性能、可扩展的数据管道提供了强大技术支撑。在工程实践中,Spark广泛应用于用户行为分析、日志聚合和实时统计等场景,例如处理用户互动、合照生成等事件流,实现业务洞察。本文聚焦于一个典型的“互动区合照”分析场景,通过模拟数据接入、关联分析、聚合统计与结果输出的完整

weixin_34195364的博客 400

AutoRest生成Python SDK的工程化实践与避坑指南

API客户端生成已从手工编码迈向契约驱动的工程化阶段,其核心是将OpenAPI规范作为唯一可信源,通过自动化工具链实现多语言SDK的持续交付。AutoRest凭借对OpenAPI 3.0联合类型(oneOf/anyOf)、异步支持(async/await + httpx)及结构化错误处理的原生支持,显著优于Swagger Codegen等传统方案。结合语义化枚举、operationId标准化和错误响应统一建模,可构建出具备强类型提示、高可维护性与生产就绪能力的Python SDK。该模式广泛适用于云平台开放

weixin_30628801的博客 359
上一篇: Python工程师Java之路(p)Module和Package
下一篇: Python不调包手绘圣诞树
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值