2013-04-06 25 views
1

我想以這樣的方式該值每一次會有所不同,以創建一個CDI製片JEE6製作人NewCookie

javax.ws.rs.core.NewCookie(java.lang.String name, 
      java.lang.String value, 
      java.lang.String path, 
      java.lang.String domain, 
      java.lang.String comment, 
      int maxAge, 
      boolean secure) 

。前段時間我做了一些JEE6,但是我的記憶很差!

for ex。我的一個簡單的記錄器生產商是

@Produces 
public Logger produceLogger(final InjectionPoint injectionPoint) { 
    final String injectingClass = injectionPoint.getMember().getDeclaringClass().getName(); 
    logger.info("creating logger for : " + injectingClass); 
    return Logger.getLogger(injectingClass); 
} 

任何幫助表示讚賞

+0

你想傳遞給製作者多少cookie值? – LightGuard 2013-04-08 16:08:27

回答

1

如果你能夠計算生產方法中一個獨特的價值沒有任何額外的參數,那麼所有你需要做的就是標註有方法返回值NewCookie

@Produces NewCookie createCookie() { 
    // create cookie and its value 
} 

如果你需要創建它受到一些外部參數,那麼這個生產方法可以像任何其他方法的參數 - 但是,所有的這些都是注射點,必須obtai由容器命名。

@Produces NewCookie createCookie(String value) { 
    // create cookie with parameter value 
} 

現在,基本類型(以及字符串)有問題,那你肯定有相同類型具有不同含義的其他情況下,讓你無論是使用一類特殊的像MyValue包裝你的字符串並將其用作注入點或使用自定義註釋對其進行註釋。

@Produces NewCookie createCookie(@CookieValue String value) { 
    // create cookie with parameter value 
} 

那麼當然,你需要再次在某個地方產生這個注入價值。

@Produces @CookieValue String createCookieValue() { 
    // create value 
} 

退房的JavaEE 6 TutorialCDI Spec以獲取更多信息。