JeeSite相关技术摘点(五)

JPA:

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。

ORM:

是Object-Relation-Mapping,即对象关系影射技术,是对象持久化的核心。
对象关系映射(Object Relational Mapping,简称ORM)
ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
缺点:
1.持久化层缺乏弹性。
2.维护性差
Java典型的ORM中间件有:Hibernate,ibatis,speedframework。
ORM的方法论基于三个核心原则:
  · 简单:以最基本的形式建模数据。
  · 传达性:数据库结构被任何人都能理解的语言文档化。
  · 精确性:基于数据模型创建正确标准化了的结构。

http://www.cnblogs.com/wgbs25673578/p/5140482.html

使用ORM技术,可以将数据库层完全隐蔽,呈献给程序员的只有Java的对象,程序员只需要根据业务逻辑的需要调用Java对象的Getter和 Setter方法,即可实现对后台数据库的操作,程序员不必知道后台采用什么数据库、有哪些表、有什么字段、表与表之间有什么关系。

JPA入门例子(采用JPA的hibernate实现版本)
http://blog.csdn.net/hmk2011/article/details/6289151

Java持久性API(简称JPA)是类和方法的集合,以海量数据关系映射持久并存储到数据库,这是由Oracle公司提供方案技术。

http://www.cnblogs.com/holbrook/archive/2012/12/30/2839842.html
JPA学习总结
http://shmilyaw-hotmail-com.iteye.com/blog/1969190

EJB相关注解说明:

@Entity表明该类是ejb的实体bean
@Table注释指定了Entity所要映射带数据库表,如果缺省@Table注释,系统默认采用类名作为映射表的表名。
@Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息

http://blog.csdn.net/love_xsq/article/details/41962977

json动态过滤:

json动态过滤某些属性 之@jsonignore
http://blog.csdn.net/u012373815/article/details/52266609

作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

JAXB(jackson-module-jaxb-annotations):

既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。
Object <–> XML

也可以把对象与XML之间的映射称为OXM(Object XML Mapping)

http://blog.csdn.net/xjtuse_mal/article/details/6930538
http://blog.csdn.net/a9529lty/article/details/7211725
https://baike.baidu.com/item/JAXB/479341?fr=aladdin

@XmlTransient
为它的target阻止绑定操作,@XmlTransient用于标示在由java对象映射xml时,忽略此属性。即,在生成的xml文件中不出现此元素。
http://blog.csdn.net/a9529lty/article/details/8232932

@Transient
@transient 就是在给某个javabean上需要添加个属性,但是这个属性你又不希望给存到数据库中去,仅仅是做个临时变量,用一下。不修改已经存在数据库的数据的数据结构。
java的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
实体类中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient这个注解了。
http://blog.csdn.net/sinat_29581293/article/details/51810805

spring @Entity @Table
http://blog.csdn.net/tingyuanss/article/details/44935869
jpa注解的一些用法
http://blog.csdn.net/ytp151730/article/details/9817515
Hibernate @Temporal的使用
http://blog.csdn.net/notonlyforshe/article/details/7343971
Json解析工具Jackson(使用注解)
http://blog.csdn.net/nomousewch/article/details/8955796

Java Field:

@Fileld:
@Fileld标明为需要搜索的属性。默认@Filed的参数是index=Index.YES, analyze=Analyze.YES andstore=Store.NO,即进行索引,分词,不保存具体内容到索引。

无论store=Store.NO还是store=Store.YES都不会影响最终的搜索能力。store.YES的作用是可以在搜索后可以直接从索引中获取域的完整值。在hibernate中,如果store=Store.NO,搜索结果中,域的值是通过数据库中获取,如果store=Store.YES,域的值是直接从索引文档中获取。
https://yq.aliyun.com/articles/32511
hibernate search使用@Bridge标签来转换数据类型,比如@DateBridge,时间数据转换
http://nopainnogain.iteye.com/blog/893900
[Hibernate Search] (2) 实体类型的映射
http://blog.csdn.net/dm_vincent/article/details/40677545
Java Field 详解
http://blog.csdn.net/z69183787/article/details/39343259

@Id:
@Id 注解可将实体Bean中某个属性定义为主键
JPA @Id 和 @GeneratedValue 注解详解
http://blog.csdn.net/rickesy/article/details/50788161
hibernate3:Annotation注解数据库ID生成策略详解
http://blog.sina.com.cn/s/blog_bd732c5f0101hk51.html

Mybatis 深入浅出:
http://www.cnblogs.com/dongying/category/620960.html
http://ju.outofmemory.cn/entry/94633

MapperRegistry:处理与保持xml中Mapper对应的MapperProxyFactory。

如何实现一个mapping的方法访问,自动返回page数据,也就是自读计算分页总数。
自动分页动态代理:
Proxy mybatis分页实现2
http://blog.csdn.net/gaoshanliushui2009/article/details/8604979

相关加密解密算法:

AES 加密,net和java 通用加密
http://blog.csdn.net/jy_justsoso/article/details/38109947

rojas
http://www.cnblogs.com/rojas/p/4572147.html

Java Base64、HMAC、SHA1、MD5、AES DES 3DES加密算法
http://www.lxway.com/402049056.htm
● BASE64 严格地说,属于编码格式,而非加密算法
● MD5(Message Digest algorithm 5,信息摘要算法)
● SHA(Secure Hash Algorithm,安全散列算法)
● HMAC(Hash Message Authentication Code,散列消息鉴别码)复杂的对称加密(DES、PBE)、非对称加密算法:
● DES(Data Encryption Standard,数据加密算法)
● PBE(Password-based encryption,基于密码验证)
● RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
● DH(Diffie-Hellman算法,密钥一致协议)
● DSA(Digital Signature Algorithm,数字签名)
● ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)[/size]

HMAC-SHA1:
HMAC是哈希运算消息认证码 (Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC-SHA1签名算法是一种常用的签名算法,用于对一段信息进行生成签名摘要。

http://blog.csdn.net/daiyudong2020/article/details/51817364
http://www.cnblogs.com/fireway/p/5860622.html

shiro实现HasAnyPermission 标签效果
http://blog.csdn.net/fun913510024/article/details/47131911

service基类:
http://blog.csdn.net/kenhins/article/details/51752287
BaseService.java(Service业务层基类)
http://blog.csdn.net/maguanghui_2012/article/details/49072863

https://www.programcreek.com/
https://www.programcreek.com/java-api-examples/index.php

CKFinder:

是一个强大而易于使用的Web浏览器的Ajax文件管理器。
没有CKFinder,CKEditor作为一个编辑器,也是可以正常使用的,但是无法在编辑器里浏览服务器上的用户上传文件。所以要整合CKFinder。
CKEditor:
是一个JavaScript 应用程序,富文本编辑器
http://www.cnblogs.com/Tirisfal/p/5548424.html

在JSP里使用CKEditor和CKFinder
http://www.cnblogs.com/yuepeng/archive/2013/04/01/2992097.html#configmethod

Servlet随机生成验证码

http://tom-seed.iteye.com/blog/2166304
Servlet 生成验证码
http://blog.csdn.net/hzw2312/article/details/8726313

Spring 单元测试基类:

profile,可以方便快速的切换环境。
ActiveProfiles是一个类级注释,用于声明在加载 测试类时应使用哪些活动bean定义配置文件ApplicationContext。
用于加载的资源位置 ApplicationContext。

然后:@ActiveProfiles(“production”)
http://www.cnblogs.com/pangguoming/p/5888871.html

@ContextConfiguration定义用于确定如何加载和配置ApplicationContext 集成测试的类级元数据 。
locations : 用于加载的资源位置 ApplicationContext。
@RunWith(SpringJUnit4ClassRunner.class) 用于配置spring中测试的环境
AbstractTransactionalJUnit4SpringContextTests:这个类为我们解决了在web.xml中配置OpenSessionInview所解决的session生命周期延长的问题,所以要继承这个类。该类已经在类级别预先配置了好了事物支持,因此不必再配置@Transactional和@RunWith
http://blog.csdn.net/wangpeng047/article/details/9631193

你可能感兴趣的:(javaEE)