2015-01-23 2 views
3

Jasypt 라이브러리를 사용하여 애플리케이션에 암호화를 추가하려고합니다. 통합 페이지에 @TypeDef 주석을 추가하라는 메시지가 표시됩니다.다음 주석은 Java에서는 사용할 수 있지만 Groovy에서는 사용할 수없는 이유는 무엇입니까?

"@TypeDef 주석을 사용하여 암호화 유형을 정의합니다.이 유형은 지속 된 엔티티 클래스 또는 별도 패키지 인 @TypeDefs 선언 내부에있을 수 있습니다 .-info.java " 파일 :

@TypeDef(
    name="encryptedString", 
    typeClass=EncryptedStringType.class, 
    parameters= { 
     @Parameter(name="encryptorRegisteredName", value="myHibernateStringEncryptor") 
    } 
) 

그러나, 내가 그루비 파일에서이 작업을 시도 할 때, 나는 구문 오류를받은 것으로 나타났습니다.

"그루비 : 예기치 않은 토큰 :} @ 선 (12), 열 (3)"

내가 복사하고 잘 작동 자바 파일에 정확한 코드를 붙여 넣습니다. 내가 인자 인자를 제거하면, 인자 {} 인자가 그루비에 의한 클로저로 해석되고 있다고 생각합니다.

편집 : annotation을 package-info.java로 옮겨 놓았지만 그루비에서 왜 작동하지 않는지 알고 싶습니다.

이 문제는 아마도 매개 변수 블록에있는

답변

4

: 그루비 중괄호 중괄호에서, 배열에 대한 정적 초기화 블록을 지정하는 자바에서 사용할 수있는 곱슬 중괄호 반면

parameters= { 
    @Parameter(name="encryptorRegisteredName", value="myHibernateStringEncryptor") 
} 

는 대한 문법 토큰 종결 자, 당신이 여기에서 원하는 것이 아닙니다. 다음과 같이 작동한다고 상상해보십시오 :

parameters= [ 
    @Parameter(name="encryptorRegisteredName", value="myHibernateStringEncryptor") 
] 

익명으로 만든 목록/맵에 대한 그루비 토큰 인 하드 브레이스에주의하십시오.