Добавление проверок в Java Beans через аннотации - PullRequest
4 голосов
/ 11 сентября 2009

Я хочу добавить проверки в Java Bean. Например, я хочу сделать следующее:

@MaxLength(50)
@RequiredField
public void setEmployeeName(String name){
   .....
}

Я знаю, что могу написать код, который получает проверки для определенного метода, вызывая method.getDeclaredAnnotation после того, как все значения бинов были установлены. Я хотел бы избежать написания этого кода

Есть ли что-нибудь в Java6, что дает стандартные проверки с помощью аннотаций? Нужен ли aspectj для вызова этих аннотаций?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 11 сентября 2009

Вы можете использовать Bean Validation Framework. Вот краткий обзор http://relation.to/Bloggers/BeanValidationSneakPeekPartI

0 голосов
/ 07 октября 2009

Единственный способ, которым вы сможете это сделать, - это размышления и пользовательская утилита проверки / перехватчик / прокси. JSR 303 и JSR 305 были предложены для введения аналогичной функциональности, но ничего подобного не существует.

Одна из проблем, с которой вы столкнетесь, заключается в том, что эти аннотации необходимо обрабатывать на каком-то уровне структуры или, как минимум, перехватывать перед каким-либо вызванным действием. Два наиболее распространенных способа сделать это - использовать грубую силу, либо создав утилиту, либо проверив предварительный вызов в обработчике вызовов (прокси).

Реальность такова, что если это не встроено в Spring, Struts, Guice, Java и т. Д., Вы просто создаете ненужные накладные расходы и вам лучше проверять границы проверки по требованию.

0 голосов
/ 11 сентября 2009

взгляните на JSR 303 . RI (эталонная реализация) здесь , с также хороший учебник . И нет, вам не нужен AspectJ.

...