Spring 启动
Ebean 现在了解 Spring 启动可运行 jar 结构(用于扫描类路径)。有一个 示例应用程序 显示
- 工厂 Bean(EbeanServer 的编程配置)
- EbeanFactoryBean 还从 application.properties 加载和使用配置属性
- test-ebean.properties
此示例不显示与 Spring 事务的集成(而是使用 Ebean 自身的事务)。请查看 ebean-spring
项目以了解该内容。
ebean-spring
ebean-spring 提供了一个 FactoryBean,以及与 Spring 事务的集成。
<dependency>
<groupId>${groupid}</groupId>
<artifactId>${artifactid}</artifactId>
<version>${version_str}</version>
</dependency>
<dependency org="${groupid}" name="${artifactid}" rev="${version_str}"/>
@Grapes(
@Grab(group='${groupid}', module='${artifactid}', version='${version_str}')
)
'${groupid}:${artifactid}:${version_str}'
'${groupid}:${artifactid}:${version_str}'
libraryDependencies += "${groupid}" % "${artifactid}" % "${version_str}"
[${groupid}/${artifactid} "${version_str}"]
EbeanServerFactoryBean
EbeanServerFactoryBean
是一个 Spring FactoryBean,它还包含一个 serverConfig。它与 default-ebean-server.xml
结合使用,后者专门在 ServerConfig 上将 SpringAwareJdbcTransactionManager
注册为外部事务管理器。
SpringAwareJdbcTransactionManager
SpringAwareJdbcTransactionManager
实现 Ebean 的 ExternalTransactionManager API,并提供与 Spring 事务管理的集成。
SpringJdbcTransaction
SpringJdbcTransaction
扩展 Ebean 的 ExternalJdbcTransaction
,并由 SpringAwareJdbcTransactionManager 使用。
FactoryBean
与其使用 ebean-spring
中提供的实现,您可以编写自己的 Spring FactoryBean,如下面的代码所示(或 Spring 启动 EbeanFactoryBean 示例 工厂 Bean(EbeanServer 的编程配置))。
/**
* Simple Spring bean factory for creating the EbeanServer.
*/
public class MyEbeanServerFactory implements FactoryBean<EbeanServer> {
public EbeanServer getObject() throws Exception {
return createEbeanServer();
}
public Class<?> getObjectType() {
return EbeanServer.class;
}
public boolean isSingleton() {
return true;
}
/**
* Create a EbeanServer instance.
*/
private EbeanServer createEbeanServer() {
ServerConfig config = new ServerConfig();
config.setName("pg");
// load configuration from ebean.properties
config.loadFromProperties();
config.setDefaultServer(true);
...
// other programmatic configuration
return EbeanServerFactory.create(config);
}
}