@Transient注解的使用
@Transient注解的使用
转自:https://blog.csdn.net/sinat_29581293/article/details/51810805
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注解的使用相关推荐
- SprigData-JPA之Query进行复杂查询并映射到自定对象(非数据库字段用@Transient注解)
场景介绍 有时候用JPA的时候,想拥有mybatis如此轻松的映射,将一堆复杂场景的sql语句映射到一个java类来返回.而JPA本身是很坑的,Query之支持简单查询,复杂查询需要去构造Specif ...
- java.beans.transient_@Transient注解的使用(不被序列化和作为临时变量存储)
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. trans ...
- @Transient注解(个人理解)
@Transient这个注解一般是用来放在某些数据库中不存在的字段但是你又希望用到的数据上,比如: 这个spu是不存在在我的数据库表中的,但是我又需要使用.就是在这种情况下才会用到@Transient ...
- java字段不序列化注解_@Transient注解的使用(不被序列化和作为临时变量存储)...
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. trans ...
- Java @Transient 注解使用
2019独角兽企业重金招聘Python工程师标准>>> 我们建实体类的时候啊,有时候实体类的属性和数据库表字段不一致的时候,比如多一个属性,那你不加这个注解就会报错,因为映射的时候会 ...
- @Transient注解作用
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. 用法 @t ...
- 3、JPA一些常用的注解
常用注解有下面这些: ①:@Entity.@Table.@Id.@GeneratedValue.@Column.@Basic ②:@Transient 用于忽略某个属性,而不对该属性进行持久化操作 ③ ...
- Scala入门到精通——第十六节 泛型与注解
本节主要内容 泛型(Generic Type)简介 注解(Annotation)简介 注解常用场景 1. 泛型(Generic Type)简介 泛型用于指定方法或类可以接受任意类型参数,参数在实际使用 ...
- 深入理解Java:注解
注解作用:每当你创建描述符性质的类或者接口时,一旦其中包含重复性的工作,就可以考虑使用注解来简化与自动化该过程. Java提供了四种元注解,专门负责新注解的创建工作. 元注解 元注解的作用就是负责注解 ...
最新文章
- python 复现 Unet 论文中的 Weight Map
- 【MM模块】 Goods Receipt 收货 3
- Pytorch(四) --基于Pytorch实现线性回归
- FreeMarker_模板引擎_代码自动生成器_源码下载
- php 屏蔽ctrl c,ctrl+c用不了怎么回事
- 品质背景壁纸网站高图网,选图不用瞎找了!
- 基于UPS效率进行准确的效用成本分析
- 4-3 面向复用的设计模式
- listview mysql源码_用ListView实现对数据库的内容显示
- PyTorch 算法加速指南
- 00 VirtualBox安装Windows7 32位系统
- 计算机通信答辩ppt,电子设计大赛答辩.ppt
- 360随身WiFi驱动下载
- 书签同步工具android,「效率工具推荐」跨平台在线云书签管理工具
- 获取电脑ip并输入微信发送
- node.js 基础(含mongodb,express,express-art-template)
- 负片与水印效果(OpenCV)
- 计算机应用基础作业一(答案),计算机应用基础作业一(答案).doc
- 只有经历这11种情感体验,人生才算完整 ~
- mac软件linux系统,Linux应用安装有福啦!和苹果Mac一样方便的单文件安装
热门文章
- 成人大学计算机应用基础答案,华东理工大学继续教育学院成人教育《计算机应用基础》课程期末考试试卷...
- (尚硅谷)2021 版 SpringMVC 教程笔记
- 跟木木大哥学Simulink Real Time之- 创建和运行第一个Real Time Application
- 一篇文章介绍JavaScript 导出 .csv文件
- java web 轻量 编辑器_NKeditor: NKedtior是一款优秀的轻量级Web编辑器,基于 Kindedior 二次开发...
- 周末撸了个Excel框架,现已开源,已升级,yyds
- 小米VS华为:水军?黑稿?到底是谁黑了谁?
- python猫狗识别课程设计_pytorch实现kaggle猫狗识别
- 互联网产品发掘种子用户和意见领袖的方法
- 作为计算机专业写程序的我们,不应该迷茫,我们更应懂得人生