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

成都网站游戏设计百度一下百度一下

成都网站游戏设计,百度一下百度一下,潍坊市建设工程质量安全监督站网站,高德地图怎么导航环线在一个最近的项目中#xff0c;我遇到了一个有趣的问题#xff1a;采用被赋予单个对象的服务方法#xff0c;并在一个夜间过程的上下文中重用相同的代码#xff0c;该过程独立于应用程序而在数千个相同类型的对象上运行。 试图在两个地方维护如此大小和复杂性的相同过程真… 在一个最近的项目中我遇到了一个有趣的问题采用被赋予单个对象的服务方法并在一个夜间过程的上下文中重用相同的代码该过程独立于应用程序而在数千个相同类型的对象上运行。 试图在两个地方维护如此大小和复杂性的相同过程真是荒谬的所以我需要找到一种共享代码的方法。 一种可能的解决方案是使用DeltaSpike Apache的CDI扩展集合提供一种从主要Java / JPA / Hibernate应用程序访问实体和类的简单方法。 似乎有足够的文档来使DeltaSpike在网络上的类似情况下运行但是人们对此应用程序的可行性持怀疑态度。 我的团队无法使它在项目的其他部分工作因此继续使用Spring Batch。 最大的障碍是无法创建功能性的EntityManager无论他们如何紧密地遵循可以找到的文档和示例。 该项目的较小部分为实现DeltaSpike提供了另一个很好的候选人但是在对以下教程非常熟悉之后找到了操作方法并阅读了正式的实现说明我被困在同一个地方EntityManager将无法工作至少不能与我面前的技术和版本组合使用。 幸运的是我能够将弗兰肯斯坦的一些教程和示例中的部分放在一起以针对我的情况获得可行的DeltaSpike实现因此我想我会分享我发现的内容因此下次其他人可能会更轻松一些。 基础 首先我正在使用Maven因此这里是您需要添加的依赖项 dependencygroupIdorg.apache.deltaspike.cdictrl/groupIdartifactIddeltaspike-cdictrl-api/artifactIdversion1.2.1/versionscopecompile/scope /dependencydependencygroupIdorg.jboss.weld.se/groupIdartifactIdweld-se/artifactIdversion1.1.16.Final/versionscoperuntime/scope /dependencydependencygroupIdorg.apache.deltaspike.cdictrl/groupIdartifactIddeltaspike-cdictrl-weld/artifactIdversion1.2.1/versionscoperuntime/scope /dependencydependencygroupIdorg.apache.deltaspike.core/groupIdartifactIddeltaspike-core-api/artifactIdversion1.5.0/version /dependencydependencygroupIdorg.apache.deltaspike.modules/groupIdartifactIddeltaspike-jpa-module-api/artifactIdversion1.4.0/version /dependencydependencygroupIdorg.apache.deltaspike.modules/groupIdartifactIddeltaspike-jpa-module-impl/artifactIdversion1.4.0/version /dependency 如您所见我们正在考虑在一个也需要JBoss / Weld的项目中实现DeltaSpike。 我所依赖的其他依赖项包括javax.enterpriseHibernate和JPA。 根据最终的实现您可能不需要所有这些DeltaSpike依赖项因此请确保在完成后清理pom.xml。 应用程式 对于我的示例我将使用一个基本的Application类该类遵循您在其他DeltaSpike示例中可能看到的模式 import javax.enterprise.context.ApplicationScoped; import org.apache.deltaspike.cdise.api.CdiContainer; import org.apache.deltaspike.cdise.api.CdiContainerLoader; import org.apache.deltaspike.cdise.api.ContextControl; import org.apache.deltaspike.core.api.config.ConfigResolver;public class Application {public static void main(String[] args) {CdiContainer cdiContainer CdiContainerLoader.getCdiContainer();cdiContainer.boot();ContextControl contextControl cdiContainer.getContextControl();contextControl.startContext(ApplicationScoped.class);//Your code herecdiContainer.shutdown();} } 特别注意这一行 contextControl.startContext(ApplicationScoped.class); 该行查找带有ApplicationScoped批注的类这些类需要包含在上下文中。 EntityManagerProducer 这是棘手的地方。 遵循典型的DeltaSpike教程将为您提供一个类似于以下内容的EntityManagerProducer ApplicationScoped public class EntityManagerProducer {PersistenceUnitprivate EntityManagerFactory entityManagerFactory;ProducesDefaultRequestScopedpublic EntityManager create(){return this.entityManagerFactory.createEntityManager();}public void dispose(Disposes Default EntityManager entityManager){if (entityManager.isOpen()){entityManager.close();}} } 考虑到我要处理的各种因素我唯一遇到的问题是根本不起作用。 无论我尝试了什么EntityManager始终为null。 我怀疑EntityManagerFactory不能正常工作所以我做了一些挖掘发现这种获取EntityManagerFactory的方法 private EntityManagerFactory entityManagerFactory Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, setProperties()); 使用此方法我可以基于在persistence.xml中定义的持久性单元它具有我在参数中提供的名称来获得一个有效的EntityManagerFactory。 在这里我定义了应用程序需要成为EntityManagerFactory一部分的实体以便能够执行诸如运行之类的小事情。 这是新的和改进的EntityManagerProducer的外观 ApplicationScoped public class EntityManagerProducer {private EntityManagerFactory entityManagerFactory Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, setProperties());private EntityManager entityManager;protected void closeEntityManager(Disposes EntityManager entityManager) {if (entityManager.isOpen()) {entityManager.close();}}Producesprotected EntityManager createEntityManager() {if (entityManager null) {entityManager entityManagerFactory.createEntityManager();}return entityManager;}protected Properties setProperties() {properties.setProperty(hibernate.dialect, org.hibernate.dialect.Oracle10gDialect);properties.setProperty(hibernate.show_sql, false);properties.setProperty(hibernate.hbm2ddl.auto, none);properties.setProperty(hibernate.enable_lazy_load_no_trans, true);properties.setProperty(hibernate.jdbc.batch_size, 20);properties.setProperty(hibernate.connection.driver_class, oracle.jdbc.driver.OracleDriver);properties.setProperty(hibernate.connection.url, JDBC_URL);properties.setProperty(hibernate.default_schema, System.getProperty(SCHEMA_NAME));properties.setProperty(javax.persistence.jdbc.user, System.getProperty(USER));properties.setProperty(javax.persistence.jdbc.password, System.getProperty(PASSWORD));properties.setProperty(org.hibernate.flushMode, ALWAYS);return properties;}} 注意ApplicationScoped标签 这样可以确保在启动CDI容器时将此类包含在上下文中。 还要注意您可以设置属性以将其传递到您创建的EntityManagerFactory中包括从服务器参数中的系统属性中获取它们如果环境变量可能会更改应用程序的功能这将非常有用。 最后的想法 希望这为如何设置和实现DeltaSpike提供了一个简单有效的示例。 旁注我最终无法使用这种方法来解决问题因为要处理的对象数量比预期的要大得多几百万个但是我认为分享发现的内容仍然有用。 翻译自: https://www.javacodegeeks.com/2016/01/working-deltaspike-tutorial.html
http://www.pierceye.com/news/285185/

相关文章:

  • 如何做好企业网站建设工作公众微信网站建设
  • 企业网站开发时间动效网站怎么做
  • 网站编辑是网页制作么表格制作excel下载
  • 网站开发 发表文章网站开发和移动开发
  • 建设银行网站的目的是什么意思展览策划
  • 没有网站如何做落地页wordpress 用户 购物
  • 谁做网站收录网站建设项目竞争性招标文件
  • 做淘客要有好的网站wordpress move
  • 做企业网站有前途吗网站的栏目设置
  • 免费购物网站专门教人做点心的网站
  • 佛山网站设计哪里好seo关于网站搜索排名关键词的标准评定
  • 化工行业网站模板网站上怎么做动画广告视频
  • 怎么查百度收录网站吗用旧技术做网站能过毕设么知乎
  • 容桂医疗网站建设怎样在网站做咨询医生挣钱
  • 响应式网站建设价格加盟网络营销推广公司
  • 营销型网站单页面360任意看地图网站
  • 易班班级网站建设展示PPTwordpress php 采集器
  • 网站的透明图片怎么做嘉兴网站托管
  • 宝安做棋牌网站建设哪家便宜wordpress 导出html5
  • 网页制作与网站建设的发展趋势设想wordpress必装插件
  • 网站模板下载百度云链接怎么做的学做粤菜的网站
  • 牛栏前网站建设整站优化推广品牌
  • 太原做网站找谁阳江公司做网站
  • 企业网站aspwordpress原生相册
  • 重庆网站建设哪家公司那家好企业宣传软文
  • 如何选择营销网站建设什么网站做优化最好?
  • 个人博客网站模板素材网站的运营方案
  • wordpress增加网站网页关键词jquery验证网站地址
  • 企业招聘网站模板网站页面设计需要遵循的六大原则
  • 网站界面设计说明关键词排名顾问