gpt4 book ai didi

java - @New注解不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 14:10:33 25 4
gpt4 key购买 nike

我尝试了 CDI 的 @New 注释是否有效 - 似乎不起作用。

在我的应用程序中,我创建了这样的类:

package pl.piotrek;
import java.util.Date;
import javax.enterprise.inject.Produces;
import javax.enterprise.context.SessionScoped;
public class DateFactory {
public @Produces @SessionScoped Date produceDate() {
return new Date((long)(Math.random() * 2000000000000L));
}
}

然后我尝试在我的 servlet 中使用它:

package pl.piotrek;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
import java.util.Date;
import javax.inject.Inject;
import javax.enterprise.inject.New;
@WebServlet("/HelloWorld")
public class MyServlet extends HttpServlet {
@New @Inject
private Date d1;
@New @Inject
private Date d2;
@New @Inject
private Date d3;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
PrintWriter writer = resp.getWriter();
writer.println(d1 + "\n" + d2 + "\n" + d3);
writer.close();
}
}

我预计 servlet 将打印出三个不同的日期 - 我用 @New 注释对注入(inject)进行了注释 - 但它打印了三个相同的日期,如下所示:

Sat Feb 07 07:53:36 CET 2015
Sat Feb 07 07:53:36 CET 2015
Sat Feb 07 07:53:36 CET 2015

为什么?

最佳答案

简短回答:删除@New@SessionScoped

关于java - @New注解不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com