当前位置: 首页 > news >正文

网站做的好不好数据外包小程序

网站做的好不好数据,外包小程序,医院咨询男科,湛江百度seo公司aspectsScala特征允许将新行为混合到一个类中。 考虑两个特征#xff0c;可以向JPA实体添加审核和与版本相关的字段#xff1a; package mvcsample.domainimport javax.persistence.Version import scala.reflect.BeanProperty import java.util.Datetrait Versionable {Ver… aspects Scala特征允许将新行为混合到一个类中。 考虑两个特征可以向JPA实体添加审核和与版本相关的字段 package mvcsample.domainimport javax.persistence.Version import scala.reflect.BeanProperty import java.util.Datetrait Versionable {VersionBeanPropertyvar version: Int _ }trait Auditable {BeanPropertyvar createdAt: Date _BeanPropertyvar updatedAt: Date _ } 现在将“ Versionable”和“ Auditable”及其成员实体中的字段和行为混合在一起 Entity Table(name members) class Member(f: String, l: String) extends BaseDomain with Auditable with Versionable {def this() this(null, null)BeanPropertyvar first: String fBeanPropertyvar last: String lOneToMany(fetch FetchType.EAGER, mappedBy member)BeanPropertyvar addresses: java.util.List[Address] _ }trait BaseDomain {BeanPropertyGeneratedValue(strategy GenerationType.AUTO)Column(name id)Idvar id: Long 0 } 现在上面的Member类将具有BaseDomain类的行为并且将具有Versionable特性和Auditable特性的行为。 普通的Java无法实现这种混合因为具有字段和行为的特征等同于一个抽象或具体类而Java只允许从1个基类派生。 但是使用AspectJ可以实现等效的mixin。 考虑使用Aspectj语言定义的以下方面 package mvcsample.aspect;import javax.persistence.Column; import javax.persistence.Version; import mvcsample.annot.Versioned;public interface Versionable {static aspect VersionableAspect {declare parents: Versioned mvcsample.domain.* implements Versionable;VersionColumn(name version)private Integer Versionable.version; public Integer Versionable.getVersion() {return this.version;}public void Versionable.setVersion(Integer version) { this.version version;}} }package mvcsample.aspect;import java.util.Date; import javax.persistence.Column;import mvcsample.annot.Audited; public interface Auditable {static aspect AuditableAspect {declare parents: Audited mvcsample.domain.* implements Auditable ;Column(namecreated_at)private Date Auditable.createdAt;Column(nameupdated_at)private Date Auditable.updatedAt;public Date Auditable.getCreatedAt(){return this.createdAt;}public void Auditable.setCreatedAt(Date createdAt) {this.createdAt createdAt;}public Date Auditable.getUpdatedAt(){return this.updatedAt;}public void Auditable.setUpdatedAt(Date updatedAt) {this.updatedAt updatedAt;}} } “声明父母Versioned mvcsample.domain。*实现了Versionable” Aspectj构造将Versionable接口作为父级添加到包mvcsampple.domain中以Versioned注释的任何类的父类中类似于用于Auditable的类。 然后该方面着手将字段添加到Versionable接口中该接口随后又将字段添加混合到目标实体类中这样与Audit相关和Version相关的字段和方法就混合到了实体类中。 定义了这两个方面之后目标实体类将如下所示 Entity Table(namemembers) Access(AccessType.FIELD) Versioned Audited public class Member extends BaseDomain{public Member(){}public Member(String first, String last){this.first first;this.last last;}private String first;Size(min1)private String last;OneToMany(fetchFetchType.EAGER, mappedBymember)private Listaddressaddresses new ArrayList();..... } /address 在Versionable和Auditable方面中定义的字段和行为将混入该实体更一般地混入具有Versioned和Audited批注的任何实体。 可能不如Scala特质那么干净但效果很好。 参考 Java与Aspects中的Mixin –在all和其他博客上获取我们JCG合作伙伴 Biju Kunjummen 的Scala特性示例 。 翻译自: https://www.javacodegeeks.com/2013/01/mixin-in-java-with-aspects-for-a-scala-traits-sample.htmlaspects
http://www.pierceye.com/news/430361/

相关文章:

  • seo织梦网站建设步骤西宁网络公司电话
  • 河南省建设厅网站 吴浩石家庄做外贸网站建设
  • 免费网站发布怎么做的校园网站建设的参考文献
  • 网站空间管理平台腾讯会议多少钱一个月
  • 手机网站开发如何设置触摸功能的网页设计培训班
  • 淘宝客自己做网站中信建设有限责任公司 闫励
  • wordpress 分页不出来昆明网站快速优化排名
  • 玉泉路网站制作369网站建设中心
  • 服务器建设网站办一家建筑公司怎么样
  • 官网网站设计小程序免费制作流程
  • 宜昌哪有有做网站的wordpress如何添加页面子目录
  • 高端网站制作开发html写一个简单购物页面
  • 为什么百度搜索不到我的网站网站服务商排名
  • 深圳建设网站首页国土 住房与城乡建设部网站
  • wordpress拖拽式建站主题wordpress 类似软件
  • ps制作网站logo广西建设局网站
  • 专业网站建设公司排名wordpress上传媒体文件大小修改
  • 郑州app开发公司排名网站seo 文章转载 修改标题
  • 深圳网站备案查询成都建设施工安全协会网站
  • 做视频找素材的网站有哪些邢台做网站多少钱
  • 创世网站建设公司设计理念页面设计
  • 免费的网站模板昆明装饰企业网络推广
  • 怎样用微信做购物网站广州菜谱制作公司
  • 视频网站发展好应该怎么做wordpress移动支付免费
  • 青岛网站设计案例wordpress 转换成小程序
  • 展览中心网站建设优质的成都网站建设推
  • 建材网站模板济南建设集团网站
  • 合肥市建设建筑网站wordpress医院主题
  • 做ui要上那些网站完全免费网站源码
  • 集团企业网站建设建立网站有哪些步骤