对象序列化时屏蔽字段 --《JAVA编程思想》86

MuleSoft集成LLM的企业级AI编排实践 大语言模型(LLM)作为非结构化数据理解与生成的核心技术,正加速融入企业核心业务系统;其落地难点不在能力本身,而在治理、合规与可观测性等工程化约束。MuleSoft凭借成熟的API生命周期管理、策略驱动的流量控制、全链路追踪及混合云原生支持,成为构建可审计、可回滚、符合SOX/GDPR要求的AI工作流的理想编排底座。本文聚焦LLM能力标准化封装、Prompt工业化管理、RAG原生实现与生产级压测方法,覆盖从本地调试到亿级流量的完整交付路径,为金融、保险、制造等强监管行业提供可复用的AI集成范式。 阅读详情

通过 Serializable 接口实现序列化时,默认会将全部字段进行持久化。

但出于安全考虑,部分敏感字段,比如:密码,我们并不希望它也被持久化。

public class User implements Serializable {

    private String name;

    private String password;

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

}
public class UserSerializable {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        User user = new User("admin", "123456");
        System.out.println(user);
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("user.out"));
        out.writeObject(user);
        out.close();
        System.out.println("------反序列化------");
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("user.out"));
        user = (User) in.readObject();
        System.out.println(user);
    }

}
User{name='admin', password='123456'}
------反序列化------
User{name='admin', password='123456'}

下面,给大家演示屏蔽部分字段的两种方式。

1. transient 限时关键字

transient 的用法非常简单,直接修饰需要关闭序列化的字段即可。

public class User implements Serializable {

    private String name;

    private transient String password;

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

}
public class UserSerializable {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        User user = new User("admin", "123456");
        System.out.println(user);
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("user.out"));
        out.writeObject(user);
        out.close();
        System.out.println("------反序列化------");
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("user.out"));
        user = (User) in.readObject();
        System.out.println(user);
    }

}
User{name='admin', password='123456'}
------反序列化------
User{name='admin', password='null'}

2. Externalizable 接口

Externalizable 接口不会自动存储和恢复字段的值,必须由我们自己覆写 writeExternal() 和 readExternal() 方法,手动保存/恢复持久化的字段,未操作的字段将不会被持久化。

实现 Externalizable 接口的类,必须提供无参构造方法;Serializable 接口则不需要,它是基于二进制为基础来构造对象的。

public class User implements Externalizable {

    private String name;

    private String password;

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    public User() {

    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
        out.writeObject(name);
    }

    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
        name = (String) in.readObject();
    }

}

public class UserExternalizable  {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        User user = new User("admin", "123456");
        System.out.println(user);
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("user.out"));
        out.writeObject(user);
        out.close();
        System.out.println("------反序列化------");
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("user.out"));
        user = (User) in.readObject();
        System.out.println(user);
    }

}
User{name='admin', password='123456'}
------反序列化------
User{name='admin', password='null'}

本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。

若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!

数据库之Redis运维手册(私人整理) 1、redis配置文件 #cat 8000.conf daemonize no #[yes/no]默认值no,该参数用于定制redis服务是否以守护模式运行。 pidfile /var/run/redis.pid #默认值/var/run/redis.pid,指定redis服务的进程号文件路径,以守护模式运行时需要配置本参数; port 8000 #默认值6379,指定redis服务... 阅读详情

相关推荐

【信息科学与工程学】【安全领域】第三十五篇 网络安全算法表02

​分级处理​:实时增量 + 离线全量 + 自动校验三线并行​最终一致优先​:强同步仅用于支付等核心场景​双向容错​:Redis侧:读CK兜底(CK侧:自动屏蔽校验失败分区​业务适配​:graph LR高实时场景 --> Redis写+双重读分析场景 --> 放宽CK同步延迟报表场景 --> T+1校准保障该方案已在京东、美团等千亿级数据平台验证,支撑双11级流量下Redis与ClickHouse的数据协同。

weixin_49199313的博客 1341

DMXAPI实现kimi-k2.5全能力开放:结构化输出与低成本推理实践

大模型API的本质是将底层推理能力封装为可编程服务,其核心价值不在于参数规模或榜单分数,而在于system prompt透传、tool use的JSON Schema原生解析、response_format硬性约束等关键能力是否真正可用。这些能力共同构成确定性输出的基础,直接影响RAG系统字段提取准确率、Agent工作流调试成本与金融级合规交付稳定性。DMXAPI通过深度控制tokenizer、logit processor与推理调度层,使kimi-k2.5在中文长文本理解、结构化生成与低成本推理三大维度达

weixin_34060741的博客 395

深入解析BlueZ5与D-Bus:Linux蓝牙开发实战指南

本文深入解析BlueZ5与D-Bus在Linux蓝牙开发中的核心应用,提供从环境搭建到实战开发的完整指南。通过详细代码示例和调试技巧,帮助开发者掌握蓝牙协议栈与D-Bus接口的交互方法,实现高效蓝牙设备管理与GATT服务开发。

weixin_28292761的博客 450

Serializable 剔除某些不想保存的字段 transient

示例: package cn.com.chinatelecom.mms.pojo; import java.io.Serializable; public class Person implements Serializable{ /** * */ private static final long serialVersionUI...

weixin_30763397的博客 639

别再折腾SNAP了!ENVI 5.6.0 直接拖拽打开Sentinel-2 L2A数据的正确姿势

本文详细介绍了ENVI 5.6.0直接处理Sentinel-2 L2A数据的高效方法,无需通过SNAP进行繁琐的重采样预处理。通过直接拖拽XML文件,用户可以快速加载不同分辨率的波段数据,显著提升工作效率。文章还对比了直接打开与SNAP重采样流程的优劣,并提供了常见问题解决方案和高级应用技巧。

weixin_30296405的博客 635

【Arduino 101】五分钟搞懂PID控制算法

【Arduino 101】五分钟搞懂PID控制算法物料清单尺寸接线 文章目录物料清单尺寸接线 物料清单 Arduino Uno x 1 超声波模块(HC-SR04)x 1 舵机(Tower Pro MG996R)x 1 舵机供电: 5V 稳压管(LM7805) x 1 , 滤波电容 (0.33uF, 0.1uF) x 2, 9V 电池 x 1 滑轨:泡沫板 支架:乐高 滚动物体:胶带(Up试过网球,但是测距模块的表现不理想) 尺寸 接线 ...

机器人工坊 1万+

2020-10-25

java序列化,看这篇就够了 一、序列化的含义、意义及使用场景 序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。 使用场景:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method invoke,即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;所有需要保.

qq_32902741的博客 439

【分享】ArcGIS实现分子分母等标注实用技巧

前言 标注是显示在地图上的文字信息,是出图中不可或缺的重要元素,为了标注的样式丰富,摆放的位置灵活,因此给制图出图带来不少难度,以下分享几种本人在ArcGIS中的标注方法,实现上下标注、换行标注或分式标注的实用技巧。 普通模式与高级模式 默认为普通模式,勾选高级开启高级模式。 普通二分式标注(普通模式) [DLBM] & vbnewline & [DLMC] 标注效果展示 分行二分式标注(普通模式) [DLBM]& vbnewline & "——————" &

杨港 3万+

java序列化忽略指定的字段

在字段上添加@JsonIgnore注解。

qq_41605733的博客 1598

搭建一个简单的 Django + Vue 项目

在本文中,我将为您详细介绍如何搭建一个简单的 Django + Vue 项目。Django 是一个使用 Python 编写的高级 Web 框架,而 Vue 是一个流行的 JavaScript 框架,用于构建用户界面。通过结合 Django 和 Vue,我们可以创建强大的全栈 Web 应用程序。创建 Django 项目设置 Django 后端创建 Vue 前端连接 Django 和 Vue让我们开始吧!

JfpBlockchain的博客 352

Doris磁盘空间管理(生命周期管理、清理磁盘空间方法)

在进行数据仓库开发时,比较头疼的是历史数据不删除,磁盘空间不断增长,如果磁盘空间不足时,spark调度任务写入时就会报错。

大模型大数据攻城狮的专栏 1718

Java 序列化中如果有些字段不想进行序列化,怎么办?

方法来控制哪些字段应该被序列化和反序列化。这种方式更加灵活,可以更好地控制序列化和反序列化的过程。另外,你也可以使用自定义序列化器来控制哪些字段应该被序列化。关键字用于指示对象序列化过程中不应包含该字段。在Java中,如果你想要在序列化过程中忽略某些字段,你可以使用。这是因为这些字段不能被序列化,因为它们不是对象的一部分。,它在序列化过程中会被忽略,不会包含在序列化的结果中。这样就可以控制哪些字段应该被序列化和反序列化了。在这个例子中,我们创建了一个自定义的序列化器。

qq_33240556的博客 1150

国科大学习资料--现代数字信号处理I(张颢)--2020年期末考试试卷

国科大学习资料–现代数字信号处理I(张颢)–2020年期末考试试卷 国科大学习资料–现代数字信号处理I(张颢)–2020年期末考试试卷 国科大学习资料–现代数字信号处理I(张颢)–2020年期末考试试卷 =========================================================================================================================================================

无名何许人的博客 3574

序列化时忽略某些属性

序列化

TM_enn的博客 1851

华为OD机试双机位C卷-用户入网定期复评(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【用户入网定期复评】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【用户入网定期复评】。

qq_45776114的博客 837

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

机器学习生产化:构建可观测、可治理的ML运行时环境

机器学习模型部署不是终点,而是工程化挑战的起点。从概念上讲,ML系统在生产中需应对数据漂移、概念漂移、服务韧性与资源约束等核心问题;其技术原理在于建立训练与推理一致的数据契约、标准化服务封装、全链路可观测性及声明式模型治理;技术价值体现在保障低延迟、高可用、可追溯与合规可控,显著降低线上事故率与运维成本;典型应用场景覆盖金融风控、实时推荐、智能客服等对稳定性与可解释性要求严苛的业务系统;本文聚焦ML从Notebook到Production落地过程中的七道关键关卡,深入解析可观测性与服务韧性在真实产线中的工程

aijia7039的博客 409

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA面试题(1~95)《上》

1、面向对象的特征有哪些方面?  答:面向对象的特征主要有以下几个方面:  - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。  - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性...

ywl470812087的博客 4963

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

25万+字干货|Java面试85题图解版:43道高频真题速查手册(八股+源码双吃透)

本文为25万字超全干货的Java面试85题图解完整版手册,精选43道大厂高频面试真题,摒弃传统死记硬背八股文模式,采用三句标准答案、生活化场景比喻、核心结构图解的方式,通俗讲解Java基础、并发、JVM、数据库、框架等核心考点。每道题目配套实战避坑指南、面试官高频追问与源码解析,实现八股背诵与底层源码双向吃透,适合校招、社招程序员考前速刷、长期复盘,轻松攻克Java面试重难点。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 795

模型上线后崩溃的7种死法与工程化解法

机器学习模型部署不是简单的文件拷贝,而是从算法验证迈向系统可靠性的关键跃迁。其核心挑战在于生产环境的不确定性——网络延迟、数据漂移、并发冲突、版本不兼容等,都会导致静默失败或服务雪崩。真正的ML工程瓶颈不在建模层,而在集成、可观测、治理与容错能力。本文聚焦特征服务熔断、Schema强校验、分布式状态一致性、ONNX跨语言序列化、K8s资源隔离、灰度发布机制及Fallback可观测性等实战要点,覆盖金融风控、电商推荐等高要求场景,为构建具备SLA保障、可审计、可降级的生产级模型服务提供可复用的技术路径。

turnRound 467

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

MuleSoft+LangChain企业级AI编排实战:安全、可监控的生产流水线

AI编排(AI Orchestration)是将大语言模型深度融入企业核心业务系统的关键工程实践,其本质是构建端到端、可观测、可治理的智能流水线。它既不是单纯调用LLM API,也不是传统ESB的简单延伸,而是融合数据集成、语义转换、RAG增强推理与动态安全策略的分层架构。核心技术价值在于解耦企业级集成能力(如OAuth透传、字段级脱敏、异构系统连接)与AI原生能力(如Prompt工程、向量检索、结构化输出约束),从而保障99.95%的数据可用性与95%以上的推理准确率。典型应用场景覆盖销售智能预警、售后知

weixin_30588675的博客 354

AI编排实战:MuleSoft+LangChain企业级AI流水线搭建

AI编排是企业将大语言模型(LLM)真正融入CRM、ERP等核心业务系统的工程化方法,其本质是协调数据流、权限控制、结果塑形与错误兜底的端到端工作流。它既非单纯调用API,也非仅优化Prompt,而是融合集成平台的确定性能力与AI框架的语义推理能力,在保障数据主权、满足合规审计与达成生产级SLA的前提下,实现可监控、可降级、可审计的智能自动化。本文聚焦MuleSoft与LangChain协同落地的关键实践,涵盖DataWeave数据缝合、业务语义增强链(Business-Semantic Chain)、分层

weixin_30879833的博客 417

MuleSoft企业级AI编排实战:打通LLM与SAP/Salesforce数据孤岛

AI编排(AI Orchestration)是企业将大语言模型(LLM)深度融入现有业务系统的核心能力,其本质并非简单调用API,而是通过可治理、可审计、可解耦的中间层实现数据调度与智能决策协同。它依托企业服务总线(ESB)演进逻辑,解决数据主权合规、系统韧性演进与端到端可观测性三大硬约束。在金融、制造、零售等强集成场景中,MuleSoft凭借原生企业连接器、声明式DataWeave数据编织、Anypoint治理闭环及轻量流程卡位,成为LLM集成与API治理的关键枢纽。本文聚焦销售智能助手等真实用例,详解如

weixin_30487201的博客 296

国产AI编程工具横评:2026企业级选型五大硬核维度

AI编程工具已从辅助补全演进为深度参与软件工程决策的核心组件。其本质是基于代码语义理解与上下文建模的智能协同系统,依赖AST解析、项目知识图谱构建和多语言工程规则内化等底层能力。技术价值不仅在于提升编码速度,更在于降低架构一致性风险、强化安全合规落地、缩短遗留系统现代化路径。典型应用场景覆盖Spring Boot微服务重构、PyTorch+CUDA混合开发、金融级日志脱敏、低代码到React转换及CI/CD脚本生成等真实产线任务。本文聚焦上下文感知深度、工程语义理解精度、安全边界控制粒度、本地化知识库响应速

abc20899的专栏 504

MuleSoft+LLM企业级AI编排:构建可审计、可治理的智能工作流

企业AI落地的核心挑战并非模型能力,而是如何将大语言模型(LLM)安全、可控、可追溯地嵌入现有IT治理体系。这涉及数据主权保障、服务网格集成、合规日志审计与业务语义对齐等关键工程问题。MuleSoft作为成熟的企业集成平台,凭借其连接层可信接入、编排层结构化数据融合、执行层LLM上下文精准注入三大能力,成为支撑AI从POC走向规模化生产的关键中枢。它解决的不是‘能否调用API’,而是‘是否敢让AI驱动采购、生成高管简报、直连核心数据库’的信任问题。本文聚焦MuleSoft与LLM协同架构的设计原理、七层网关

weixin_30667649的博客 354

工业级深度强化学习系统:可扩展高效架构实战

深度强化学习(Deep-RL)在真实业务中常面临训练不可扩展、推理延迟高、线上稳定性差等核心挑战。其本质是MDP建模与工程落地的深度耦合问题:策略性能不仅取决于算法设计,更受限于状态抽象精度、梯度同步效率、执行层安全约束等系统级因素。‘可扩展’意味着从单机验证到百节点训练再到边缘毫秒推理的全链路一致性;‘高效’则体现为单位算力下的决策质量提升、策略迭代加速与硬件并发承载能力三重达标。本文聚焦物流分拣、光伏调控、半导体AGV等已稳定运行18个月的工业场景,深入拆解分层解耦架构、Ring-AllReduce梯度

congdi7904的博客 397
上一篇: 对象序列化 --《JAVA编程思想》85
下一篇: 多次重复序列化同一对象的踩坑点 --《JAVA编程思想》87
BaymaxCS
博客等级 码龄9年 61粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

BaymaxCS

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值