我大致知道这个构造的作用:它创建一个SomeType EJB并将该对象注入另一个EJB.
@EJB(name="name1")
SomeType someVariable
Run Code Online (Sandbox Code Playgroud)
现在我有一个类似于这样开始的类:(我给出所有类级别的注释,即使我认为只有@EJBs相关的)
@Remote(SomeClass.class)
@Stateless(name="someName")
@EJBs({@EJB(name="name1",beanInterface=Type1.class),
@EJB(name="name2",beanInterface=Type2.class)})
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class X extends Y{
//code
Run Code Online (Sandbox Code Playgroud)
这是做什么的@EJB?他们可能从JNDI获取或创建"name1"......对象,但他们在哪里放置结果?我没有看到.lookup任何附近的电话,但代码库是巨大的,所以我不太确定这一点.
奖金问题:我认为这两个@Transaction注释只是重复默认值?
更新:此时多个人声称@EJBs是专有扩展.它不是.它是java EE5的核心部分.有关详细信息,请参阅JavaDoc..它只是个别@EJB注释的容器.
我相信声称这些EJB注释的每个人都会进行查找.我只是想知道这次查找结果会发生什么.
考虑这个用C++演示RAII的简单类(从我的脑海中开始):
class X {
public:
X() {
fp = fopen("whatever", "r");
if (fp == NULL)
throw some_exception();
}
~X() {
if (fclose(fp) != 0){
// An error. Now what?
}
}
private:
FILE *fp;
X(X const&) = delete;
X(X&&) = delete;
X& operator=(X const&) = delete;
X& operator=(X&&) = delete;
}
Run Code Online (Sandbox Code Playgroud)
我不能在析构函数中抛出异常.我有错误,但无法报告.这个例子非常通用:我不仅可以使用文件,还可以使用例如posix线程,图形资源,...我注意到例如维基百科RAII页面如何扫描地毯下的整个问题:http:// en .wikipedia.org /维基/ Resource_Acquisition_Is_Initialization
在我看来,RAII只有在保证无故障发生的情况下才有用.我知道这个属性的唯一资源是内存.现在在我看来,例如Boehm相当令人信服地揭穿手动内存管理的想法在任何常见情况下都是一个好主意,那么C++使用RAII的方式的优势在哪里呢?
是的,我知道GC在C++世界中有点异端;-)
我们想在我们公司部署maven,我们想知道将文件settings.xml和相关数据分发给每个开发人员的最佳方法是什么.我们看到这些限制:
那么贵公司如何处理这个问题呢?
我有下面的代码生成在其注释中标记的错误消息。我想我理解这个消息:我想借用父级两次:一次用于查找其子级,一次作为子级的参数(并且错误中的可变/不可变单词不相关)。我必须证明当Child它修改时它不会消失Parent。但我不知道该怎么做。我可以做Rc<Child>任何事,但那似乎很浪费,所以我希望增加一些生命周期就能达到目的。
struct Parent {
used: i32,
child: Child,
}
struct Child {
dummy: i32,
}
impl Child {
fn use_parent(&mut self, parent: &mut Parent) {
// use both child and parent
parent.used += self.dummy;
self.dummy += 1;
}
}
fn main() {
let parent = Parent {
used: 0,
child: Child {
dummy: 1
}
};
//Error: cannot borrow immutable local variable `parent` as mutable
parent.child.use_parent(&mut parent);
}
Run Code Online (Sandbox Code Playgroud) 当我们淹没在数以千计的 checkstyle 规则中时,我想放宽它们(如果只是为了阻止开发人员忽略它们)。我想放宽的规则之一是JavaDocType检查:只有在接口上,javadoc 才应该是强制性的,而不是在其他公共类上。不幸的是,我没有看到“接口” Scope。有没有人建议在不写我们自己的支票的情况下使这成为可能?
我们有一个简单但非常常用的缓存,由 ConcurrentHashMap 实现。现在我们希望定期(例如每 15 分钟)刷新所有值。
我想要这样的代码:
private void regularCacheCleanup() {
final long now = System.currentTimeMillis();
final long delta = now - cacheCleanupLastTime;
if (delta < 0 || delta > 15 * 60 * 1000) {
cacheCleanupLastTime = now;
clearCache();
}
}
Run Code Online (Sandbox Code Playgroud)
除了它应该是:
现在我想在 ThreadLocal 中实现一个短定时器。当这个时间到期时,将以同步的方式检查真实计时器。然而,这是一个非常多的代码,所以一个更简单的想法会很好。