资讯专栏INFORMATION COLUMN

Ebean使用maven配置的加载流程

褰辩话 / 3490人阅读

摘要:转载请注明出处原文排版地址点击跳转使用配置的加载流程相对于其他的框架,显得更轻量级和简便,没有很多复杂的配置文件和难懂难驾驭的特性解放了程序员的开发效率,但也将很多特性隐藏了起来准备工作中依赖的包中依赖的插件的配置文件

转载请注明出处 http://www.paraller.com
原文排版地址 点击跳转

This document is not completed and will be updated anytime.

Ebean使用maven配置的加载流程

Ebean相对于其他的ORM框架,显得更轻量级和简便,没有很多复杂的配置文件(mybatis)和难懂难驾驭的特性(hibernate),解放了程序员的开发效率,但也将很多特性隐藏了起来

准备工作
pom中依赖的jar包

    org.avaje.ebeanorm
    avaje-ebeanorm-spring
    3.3.1
    
        
            avaje-ebeanorm
            org.avaje.ebeanorm
        
    


    org.avaje.ebeanorm
    avaje-ebeanorm-agent
    4.5.3


    org.avaje
    avaje-agentloader
    2.1.1
pom中依赖的插件

    org.avaje.ebeanorm
    avaje-ebeanorm-mavenenhancer
    4.5.3
    
        
            process-classes
            process-classes
            
                target/classes
                target/classes
                cn.yeamoney.rest.domain.**,cn.yeamoney.rest.service.**
                debug=1
            
            
                enhance
            
        
    
ebean的配置文件
#Created by JInto - www.guh-software.de
#Wed Jan 13 16:35:00 CST 2016
datasource.default=pg
datasource.pg.databaseDriver=org.postgresql.Driver
datasource.pg.databaseUrl=jdbc:postgresql://192.168.99.100:5432/yea
datasource.pg.heartbeatsql=select 1
datasource.pg.password=
datasource.pg.username=postgres
ebean.ddl.generate=false
ebean.ddl.run=false
ebean.debug.lazyload=false
ebean.debug.sql=true
ebean.logging=all
ebean.logging.directory=logs
ebean.logging.iud=sql
ebean.logging.logfilesharing=all
ebean.logging.query=sql
ebean.logging.sqlquery=sql
ebean.logging.txnCommit=none
启动流程
增强插件

根据官网的提示 : http://ebean-orm.github.io/do...
我们可以知道,Ebean对Model的增强是在pom中使用avaje-ebeanorm-mavenenhancer插件实现的,在这个插件里面可以配置需要增强的包(package),在4.7.1以上的版本不需要指定,将会自动寻找需要增强的类

代理

使用avaje-ebeanorm-agent,引入代理将普通bean变成实体bean

代理加载器

使用avaje-agentloader,加载指定的代理,在启动运行jvm的时候装载代理,普通bean变成实体bean有极低的机率会失败

源码如下

import org.avaje.agentloader;
...
public void someApplicationBootupMethod() {
  // Load the agent into the running JVM process
  if (!AgentLoader.loadAgentFromClasspath("avaje-ebeanorm-agent","debug=1;packages=org.example.model.**")) {
    logger.info("avaje-ebeanorm-agent not found in classpath - not dynamically loaded");
  }
}
ServerConfig

在org.avaje.ebeanorm包中有一个类ServerConfig,专门保存Ebean的配置信息,
EbeanServerFactory会通过ServerConfig配置文件创建EbeanServer
ServerConfig的loadFromProperties方法会加载默认配置文件ebean.properties,当然也能指定想要加载的配置文件

注册属性

通过设置 ServerConfig.setRegister(true)可以开启注册功能,默认为true
开启该功能之后,就可以使用Ebean 单例实例化 EbeanServer

config.setName("pg");
EbeanServer server = EbeanServerFactory.create(config);
EbeanServer server = Ebean.getServer("pg");
默认的server
ServerConfig config = new ServerConfig();
config.setName("pg");
config.setDefaultServer(true);
EbeanServer server = EbeanServerFactory.create(config);
EbeanServer server = Ebean.getDefaultServer();
// 实现效果和上面的代码一样
EbeanServer server = Ebean.getServer(null);
结合spring使用

转载请注明出处 来源:paraller"s blog

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17641.html

相关文章

  • Kotlin + Spring Boot服务端开发

    摘要:是什么著名厂商开发的基于的静态类型编程语言,声称。语法近似和,且已活跃在开发领域,被誉为平台的。各有千秋,我更认同改写字节码。的作用是防止敏感字段被泄露到中,的作用是软删除数据不可见,但没有真的删除。 Kotlin是什么? 著名IDE厂商JetBrains开发的基于JVM的静态类型编程语言,声称100% interoperable with Java。Kotlin是由工程师设计的,各种...

    e10101 评论0 收藏0
  • 国外程序员整理Java资源大全

    摘要:日期和时间处理日期和时间的函数库。使用中可观察序列,创建异步基于事件应用程序的函数库。为分布式系统提供延迟和容错处理。发布使用本机格式分发应用程序的工具。将程序资源和打包成和的本机文件。图像处理用来帮助创建评估或操作图形的函数库。 好资源要分享原文 译者 唐尤华 翻译自 github akullpp 构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Mave...

    chengtao1633 评论0 收藏0
  • 几个数据持久化框架Hibernate、JPA、Mybatis、JOOQ和JDBC Template

    摘要:不管是还是,表之间的连接查询,被映射为实体类之间的关联关系,这样,如果两个实体类之间没有实现关联关系,你就不能把两个实体或者表起来查询。 因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template。 Hibernate和Mybatis是使用最多的两个主流框架,而JOO...

    xietao3 评论0 收藏0
  • Day 30: Play Framework —— Java开发者梦想框架

    摘要:通过如下命令发布控制台,运行编写的默认程序。默认禁用,启用它需要打开并取消注释以下行。启用数据库启动应用程序的数据库,框架提供了内置的数据库的支持。当用户发出请求到,一个新的将被创建。方法为给定的获取,把这个转换成格式并返回响应。 编者注:我们发现了有趣的系列文章《30天学习30种新技术》,正在翻译,一天一篇更新,年终礼包。下面是第 30 天的内容。 今天是最后一天,我决定学习一...

    Code4App 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<