Java 如何编写一个或多或少充当容器的应用程序?
我正在计划一个应用程序,它必须提供与JavaEE容器到第三方扩展代码非常相似的服务。基本上,这个应用程序所做的就是找到一组工作项(目前计划使用Hibernate)并将它们分派给工作项消费者 工作项使用者加载项详细信息,调用第三方扩展代码,然后如果第三方代码没有失败,则更新工作项的某些状态并提交所有已完成的工作 我明确地说,这不是作为JavaEE应用程序编写的。但是,本质上,我的应用程序必须提供容器的许多服务;它必须提供事务管理、连接池和管理以及一定数量的部署支持。我如何A)直接提供这些,或B)选择第三方库提供它们。由于较大项目的需求,扩展编写器将使用Hibernate,如果这有什么区别的话Java 如何编写一个或多或少充当容器的应用程序?,java,hibernate,transactions,containers,Java,Hibernate,Transactions,Containers,我正在计划一个应用程序,它必须提供与JavaEE容器到第三方扩展代码非常相似的服务。基本上,这个应用程序所做的就是找到一组工作项(目前计划使用Hibernate)并将它们分派给工作项消费者 工作项使用者加载项详细信息,调用第三方扩展代码,然后如果第三方代码没有失败,则更新工作项的某些状态并提交所有已完成的工作 我明确地说,这不是作为JavaEE应用程序编写的。但是,本质上,我的应用程序必须提供容器的许多服务;它必须提供事务管理、连接池和管理以及一定数量的部署支持。我如何A)直接提供这些,或B)选
值得注意的是,在我提到的所有特性中,我所知最少的是事务管理。如何为容器中运行的扩展代码提供此服务?您好,我建议使用Spring框架。它提供了一种很好的方式,可以将您正在谈论的各种服务集合在一起 例如,为了满足您的特定需求:
- 我构建了一个基于spring的独立应用程序,它使用apachecommons连接池。我还相信spring内置了某种事务管理
- 我使用ant作为前端加载程序进行部署和运行。它工作得很好。我只是使用ant来运行我的Spring单机版应用程序来完成一个单独的进程
- Spring支持Quartz,它可以很好地处理线程和线程池
- Spring与Hibernate和其他类似项目很好地集成
- 使用它的xml属性定义——Spring非常适合于多环境配置
嗨,我推荐使用Spring框架。它提供了一种很好的方式,可以将您正在谈论的各种服务集合在一起 例如,为了满足您的特定需求:
- 我构建了一个基于spring的独立应用程序,它使用apachecommons连接池。我还相信spring内置了某种事务管理
- 我使用ant作为前端加载程序进行部署和运行。它工作得很好。我只是使用ant来运行我的Spring单机版应用程序来完成一个单独的进程
- Spring支持Quartz,它可以很好地处理线程和线程池
- Spring与Hibernate和其他类似项目很好地集成
- 使用它的xml属性定义——Spring非常适合于多环境配置
Spring确实有事务管理。可以使用ApacheDBCP在应用程序上下文中定义数据源(对数据源使用
org.apache.commons.dbcp.BasicDataSourceorg.springframework.jdbc.datasource.DataSourceTransactionManager
。之后,应用程序中的任何对象都可以通过编程方式定义自己的事务,如果您将其传递给TransactionManager,或者您可以在应用程序中对对象的定义使用AOP拦截器定义需要在事务内部运行的方法
或者,现在使用Spring更容易的方法是在需要在事务内部运行的任何方法中使用@Transactional注释,并将类似的内容添加到应用程序上下文中(假设您的transactionManager名为txManager):
通过这种方式,您的应用程序将很容易在以后接受新组件,只需使用@Transactional注释或通过PlatformTransactionManager直接创建事务即可进行事务管理,这些事务将通过setter接收(因此,您可以在应用程序上下文中定义对象时传递它).Spring确实有事务管理。您可以使用Apache DBCP在应用程序上下文中定义数据源(对数据源使用
org.apache.commons.dbcp.BasicDataSourceorg.springframework.jdbc.datasource.DataSourceTransactionManager
。之后,应用程序中的任何对象都可以通过编程方式定义自己的事务,如果您将其传递给TransactionManager,或者您可以在应用程序中对对象的定义使用AOP拦截器定义需要在事务内部运行的方法
或者,现在使用Spring更容易的方法是在需要在事务内部运行的任何方法中使用@Transactional注释,并将类似的内容添加到应用程序上下文中(假设您的transactionManager名为txManager):
通过这种方式,您的应用程序将很容易在以后接受新组件,只需使用@Transactional注释或通过PlatformTransactionManager直接创建事务即可进行事务管理,这些事务将通过setter接收(因此,您可以在应用程序上下文中定义对象时传递它).您可以在J2SE环境中尝试Java事务管理和连接池(JDBC+JMS)。不需要任何应用服务器,而且使用起来更有趣;-)
嗯
Guy您可以在J2SE环境中尝试Java事务管理和连接池(JDBC+JMS)。不需要任何应用服务器,而且使用起来更有趣;-)
嗯
盖伊回答得好,但石英是用于调度的,而不是用于调度