草庐IT

java - 在实体 Bean 中使用无状态 EJB bean

显然,在实体bean中使用无状态EJBbean有异味,但请考虑以下场景,如果您知道更好的解决方案,请告诉我:我有一个InvoiceTemplate实体Bean,字段为NextInvoiceDate生成NextInvoiceDate是一个复杂的过程,应该在InvoiceTemplate类之外执行NextInvoiceDate应在每次InvoiceTemplate存储到数据库时更新现在我有关于@PrePersist@PreUpdate实体中NextInvoiceDate生成的逻辑InvoiceTemplate实体bean。逻辑越来越复杂,我想把它移到InvoiceTemplate实体bea

java - 反序列化无状态 EJB 时是否应用 @Resource 注释?

当EJB被反序列化时,是否在方法上应用了@Resource注释?我有一个由容器保留的EJB计时器,我想知道在反序列化EJB时是否会再次注入(inject)transientTimerService(它不可序列化)。 最佳答案 也许这篇文章有帮助:无状态sessionBean:无状态sessionEJB在创建时注入(inject),并在其整个生命周期内保留其资源。StatefulSessionBean:依赖注入(inject)似乎只发生在创建时。无论如何,在激活之后,将调用@PostActivate回调处理程序,您可以在其中恢复tra

java - 在哪里放置应用程序状态?

我最好在代码中的什么地方放置对象创建(有状态对象),什么地方不放置?在什么层?例如,我曾经在HibernateDAO类中放置一个对象引用,我被告知这是不正确的,因为DAO类不应该有状态。状态应该在“服务层”内。有人告诉我,我不应该在重复调用UpdateCart()等方法时创建新对象。对象的创建是昂贵的,不应该在你的代码中无处不在。它应该只位于初始化类型方法中。例如,如果电子商务应用程序需要购物车,请将其放入session中。如果它需要一些通用的主要对象,把它放在初始化代码中。在那里创建一次,让应用程序的其余部分稍后访问它的实例。不要在每次调用时都创建此实例。我对整个设计原则感到困惑。我

java - 通过 `Future` 检查 `get(0, TimeUnit.Microseconds)` 状态是个好主意吗?

我有一个Future,我想知道它的状态。我想到的是这样的代码:try{//Isthatagoodidea?Countingonexceptionslooksweird.future.get(0,TimeUnit.MICROSECONDS);this.status=DONE;}catch(InterruptedExceptione){Thread.currentThread().interrupt();throwThrowables.propagate(e);}catch(ExecutionExceptione){this.status=FAILED;}catch(TimeoutExce

JavaFX WebEngine 卡在 "Running"状态

同时使用WebEngine在JavaFX2中,我注意到它有时会卡住。假设我正在制作一个爬虫,它只是在页面上找到超链接,然后访问它们以递归地执行相同的操作,跟踪我们访问过哪些链接以及哪些链接已经在边界上。在运行我的代码时,执行有时会在任意时刻挂起。我已经以workDoneProperty的监听器的形式向我的项目添加了一些调试代码。和exceptionProperty并通过打印loadWorker的每个转换的stateProperty.然后我注意到有时引擎会停止加载URL(状态停留在RUNNING并且没有更多workDone更新)。我假设这是因为超时或其他原因,但我已经停止等待5分钟后是否

java - 检查连接的蓝牙设备状态

如何在传递数据之前知道蓝牙设备是否仍然连接到笔记本电脑?我使用blue-cove编写了一个java程序lib通过笔记本电脑发现和传递数据。第一次传数据后,如何在下次传数据前检查设备是否还连接着笔记本电脑?我看到了类似的问题。但是他们问了如何查看连接到android的蓝牙设备状态。 最佳答案 您可以按照一系列步骤创建一个异步任务来验证连接,同时在设备之间搜索和共享文件。函数deviceDiscovered()和inquiryCompleted()是在发现设备和查询完成时执行的函数。如果设备断开连接,您将从inqueryComplete

java - Spring Boot 仅在单元测试中返回错误的状态码

我正在使用SpringBoot开发RESTAPI。我有一个Controller来创建一个新用户,它在创建用户时以201(CREATED)响应。响应没有正文内容。使用Postman或任何浏览器,我收到了201响应。但是当我尝试使用单元测试(Mockito)时,响应是200。这是我的代码:Controller:publicCompletableFuture>registerNewUser(@RequestBody@ValidRegisterUserDtonewUser)throwsExecutionException,InterruptedException{//userservicere

java - AspectJ 的当前状态是什么?

几周前发布了新版本的AspectJ。但是大多数官方文档确实很旧,可以追溯到AspectWerkz合并之前。书籍也同样过时。很难弄清楚合并后发生了什么。AspectJ语言扩展和ajc现在已经成为强制性的了吗?AspectWerkz纯Java实现消失了吗?谢谢。 最佳答案 AspectWerkz从AspectJ5开始与AspectJ合并。但是AspectJ的当前版本是6。所以有很多书籍和文档都涵盖了@AspectJ。例如,AspectJinAction,第二版涵盖了AspectJ6,这是一本很棒的书。你可以找到official@Aspe

java - 是否可以在 hibernate 状态下将表视为只读?

我有一些我没有理由从应用程序中更新的表,所以我想防止它发生,即使是由于其他地方的错误而意外发生。我看到了@Immutable注释,但它看起来仍然允许插入和删除。我想完全按照石头写的那样对待整个表(而不仅仅是每个实体)。有没有一种简单的方法可以做到这一点?还是我误解了关于@Immutable的文档?如果需要示例,假设有一个包含MONTH表、一个Month实体和一个APPOINTMENT表的表与Appointment实体关联。我永远不想在月份中删除或插入一行。 最佳答案 您是否尝试过只读缓存策略:Ifyourapplicationnee

java - 持有多个锁的线程进入 wait() 状态。它会释放所有持有的锁吗?

我编写这个程序是为了检查线程t1是否持有两个不同对象的锁:Lock.class和MyThread.class使用MyThread.class.wait()在MyThread.class实例上进入等待模式。它不会释放Lock.class实例上的锁。为什么这样?我一直在想,一旦一个线程进入等待模式或者它死了,它就会释放所有获得的锁。publicclassLock{protectedstaticvolatilebooleanSTOP=true;publicstaticvoidmain(String[]args)throwsInterruptedException{MyThreadmyThre