java.beans.transient_@Transient注解的使用(不被序列化和作为临时变量存储)
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。
transient使用小结
1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。
3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。
用法:
@transient 就是在给某个javabean上需要添加个属性,但是这个属性你又不希望给存到数据库中去,仅仅是做个临时变量,用一下。不修改已经存在数据库的数据的数据结构。
那么这个注解就可以一用。
只要在你准备添加的临时属性上添加这个注解,然后getter和setter自动完成一下,就可以啦。
@Document(collection = "streams")
public class Stream implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@Transient
private boolean alarmsettingsActive = false;
xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
}
@Document(collection = "streams")
public class Stream implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@Transient
private boolean alarmsettingsActive = false;
xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
}
上面的是个人理解,下面呢就是详细说说。
1. transient的作用
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。
然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。
总之,java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。
2. transient使用小结
1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。
3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。
@Transient注解的使用
转自:https://blog.csdn.net/sinat_29581293/article/details/51810805 java 的transient关键字的作用是需要实现Serilizab ...
@transient 注解 和 transient变量的作用
@transient 和 transient是两码事 1.@transient的作用 @transient是hibernate和Morphia中的注解,hibernate都熟悉,Morphia是通过同 ...
@Transient注解
以下两个包都包含@Transient注解 java.beans.Transient; javax.persistence.Transient; 使用@Transient时注意区别二者
@Transient注解----Hiberbate
@Transient表示该属性并非一个到数据库表的字段的映射,将会忽略该属性.如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic Exa ...
SpringBoot | Hibernate @Transient 注解
在默认情况下,持久化类的所有属性会自动映射到数据表的数据列.如果在实际应用中,不想持久保存某些属性,则可以考虑使用@Transient来修饰它们. 如果一个属性并非数据库表的字段映射,就务必将其标示为 ...
MessagePack Java 0.6.X 不使用注解(annotations)来序列化
如果你不能添加 @Message 到你的定义对象中但是你还是希望进行序列化.你可以使用 register 方法来在类中启用序列化对象. 如下的代码所示: MessagePack msgpack = n ...
Zookeeper系列六:服务器角色、序列化与通信协议、数据存储、zookeeper总结
一.服务器角色 1. Leader 1)事务请求的唯一调度者和处理者.保证事务处理的顺序性 事务请求:导致数据一致性的请求(数据发生改变).如删除一个节点.创建一个节点.设置节点数据,设置节点权限就是 ...
Unity 将一个类序列化并以 ";.asset"; 类型存储在 Resources 文件夹下
概念: 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态 ...
集合类源码(六)Map(HashMap, Hashtable, LinkedHashMap, WeakHashMap)
HashMap 内部结构 内部是一个Node数组,每个Node都是链表的头,当链表的大小达到8之后链表转变成红黑树. put操作 final V putVal(int hash, K key, V v ...
随机推荐
[php入门] 3、WAMP中的集成MySQL相关基础操作
前言:本文以小白视角了解WAMP集成开发环境中的MYSQL,涉及的面广而浅,算是导读性质. 1.启动运行熟悉WAMP中的MySQL 先有库.再有表.数据最终以记录的形式插入表中.其中对数据进行操作使用 ...
bzoj 4066: 简单题 kd-tree
4066: 简单题 Time Limit: 50 Sec Memory Limit: 20 MBSubmit: 234 Solved: 82[Submit][Status][Discuss] De ...
HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)
Recursive sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
js 通过function来定义函数
什么是函数: 函数是完成某一功能的代码段. 函数是可重复执行的代码段. 函数方便管理和维护. 自定义一个函数: 通过function关键字来定义一个函数. 语法: function 函数名称([可 ...
“玲珑杯”ACM比赛 Round #1 题解
A:DESCRIPTION Eric has an array of integers a1,a2,...,ana1,a2,...,an. Every time, he can choose a co ...
【知了堂学习笔记】/JavaScript对象--/暖妮
JavaScript对象 1.什么是JavaScript对象? JavaScript 中的所有事物都是对象:字符串.数字.数组.日期,等等. 在 JavaScript 中,对象是拥有属性和方法的数据. ...
BBS论坛(六)
6.1.优化json数据的返回 (1)新建utils/restful.py # utils/restful.py from flask import jsonify class HttpCode(ob ...
Python-爬虫03:urllib.request模块的使用
目录 1. urllib.request的基本使用 1.1 urlopen 1.2. 用urlopen来获取网络源代码 1.3. urllib.request.Request的使用 2. User-A ...
ASP.NET C# 实现钉钉签名算法
在 https://open-doc.dingtalk.com/microapp/faquestions/hxs5v9 钉钉给出了JAVA/PHP算法,下面是C#算法 using System.Sec ...
java.beans.transient_@Transient注解的使用(不被序列化和作为临时变量存储)相关推荐
- java字段不序列化注解_@Transient注解的使用(不被序列化和作为临时变量存储)...
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. trans ...
- Java中的transient关键字
前言 说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是I ...
- @Transient注解作用
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. 用法 @t ...
- SprigData-JPA之Query进行复杂查询并映射到自定对象(非数据库字段用@Transient注解)
场景介绍 有时候用JPA的时候,想拥有mybatis如此轻松的映射,将一堆复杂场景的sql语句映射到一个java类来返回.而JPA本身是很坑的,Query之支持简单查询,复杂查询需要去构造Specif ...
- java jsonfield_FastJson中@JSONField注解使用
最近做项目中,使用了json格式在服务器之间进行数据传输.但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式. 思路: ...
- @Transient注解的使用
@Transient注解的使用 转自:https://blog.csdn.net/sinat_29581293/article/details/51810805 java 的transient关键字的 ...
- java scheduled_怎么在java中利用@Scheduled注解执行定时任务
怎么在java中利用@Scheduled注解执行定时任务 发布时间:2021-01-13 16:52:56 来源:亿速云 阅读:84 作者:Leah 本篇文章给大家分享的是有关怎么在java中利用@S ...
- java 中的 Annotation 注解学习笔记
java 中的 Annotation 注解 什么是注解 元注解 @Target @Retention @Document @Inherited 自定义注解 什么是注解 Annotation 是从JDK ...
- java ee中javamail注解_JavaEE之注解
1注解:Annotation注解,是一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次,给计算机,JVM提供解读信息的. 2注解的作用:编译检查:代码分析,编 ...
最新文章
- 'This NSPersistentStoreCoordinator has no persistent stores 报错
- mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...
- Servlet,GenericServlet和HttpServlet的继承关系
- 阿里云容器服务入选云原生边缘「领导力企业TOP3」
- 开发中常见的十种对缓存的错误使用
- 看得懂的设计模式 享元模式python3 最基本(简单)实现
- Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
- opensplice dds v6.3.2_给你看个宝贝,近乎完美的DDS正弦波信号音生成器
- servlet ---- 响应对象
- word文档中页眉页脚的设置问题
- Linux shell脚本详解及实战(二)——shell脚本之分支
- C++练习 简易翻译器
- 二叉树寻找节点x的所有祖先
- 解决warning C4305: 'initializing' : truncation from 'const double' to 'float'
- 【日常问题解决】docker 映射端口出错
- 为什么alert没有弹窗?
- java 实现电子签名_Java实现数字签名
- 计算机与昆虫关系的论文,趣味昆虫学论文 昆虫与人类的关系
- 讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!
- JAVA猎才优秀博主分享