Създаване на ваши собствени анотации в Ява

Създаване на ваши собствени анотации в Java

Ако програмирате на Java с използване на някои от най-популярните рамки като пролетта и на хибернация. след това вече сте запознати с използването на тези бележки. В работата си със съществуващата рамка - вътрешни анотации достатъчно. Но какво, ако искате да създадете свои собствени пояснения?
Не толкова отдавна имах причина да създадете свой собствен анотация за проекта, който се изисква потвърждение на общата информация от различни бази данни.
писменост
Бизнес е няколко бази данни, в които една и съща информация и данни се актуализира в много отношения е запазена. Тя е планирана да се комбинират данни от основната база данни, за да се отстранят проблемите, свързани с получаване на данни от различни източници.
Но преди да започнете даден проект, трябва да разберете колко данни не е в синхрон, и да направи необходимите промени. Първата стъпка е да се създаде отчет, който ще покаже едни и същи данни в различни бази данни и потвърдете стойността или подчертае онези записи, които не съвпадат, въз основа на установени правила за помирение. По-долу са основните изисквания на експозиция по време на проекта:
• сравнение на данните в няколко бази данни за търсене на едни и същи данни, като име на клиента, фирма или информация в каталога.
• Стойността по подразбиране трябва да бъдат едни и същи във всички бази данни, въз основа на типа данни.
• За някои полета, ние просто исках да покажа, че стойността е намерена, но стойността не се сравнява.
• За други области, щяхме да се сравни само с намерената стойност и потвърдете данните с данните от източника.
• За третото поле, ние бихме искали да се направи трудно сравнение на данните, които ще се основават на стойността на други области в рамките на един запис.
• За четвърти вид поле, което искахме да форматирате данните, например във формата на валута $ 000,000.00.
• доклад трябва да бъде да бъде във формат на MS Excel, всеки ред трябва да съдържа стойност от отделен източник. Всеки ред, който не отговаря на условията на потвърждението на данни, трябва да бъде оцветена в жълто.
анотации
След четем изискването и изрази няколко различни въплъщения на идеи за това какво се изисква, реших да използвате пояснения, които ще стартират сравнение на конфигурация на данни и процеса на докладването. Имахме нужда от един прост, но гъвкава и мащабируема. Тези пояснения ще бъдат на ниво област, и ми хареса това, че конфигурацията, няма да бъдат скрити във файл някъде в CLASSPATH. Вместо това, виждам пояснителните бележки, свързани с областта да се знае точно как ще се обработват.
Казано по-просто - резюмето ще бъде нищо повече от символична, метаданните, които ще предоставят информация, но няма директно да повлияят на резултата от самия код. Ако вече сте програмирали в Java, тогава трябва да бъдат запознати с използването на абстрактен, но може би никога не сте необходима за създаване на своя собствена. За да направите това, трябва да се създаде нов тип, който използва тип Java @interface. който ще съдържа елементи, които от своя страна определят характеристиките на метаданни.
Ето един пример на проекта:


За да се покаже получените стойности на всеки източник на данни, но да се направи съпоставка на данните, трябва да се уточни compareSources елемент и задайте стойността на неверни.


За да потвърдите, че стойността се намира в определен източник на данни, но не всички, ще трябва да използвате sourcesToCompare елемент. Този дисплей намерени всички стойности, но сравнението на всички данни в източниците на данни се дава в съответствие със списъка на елементи. Такъв е случаят, ако някои данни не се съхраняват във всички източници на данни. ReconSource - това ENUM, в които източниците на данни са на разположение за сравнение.

Сега, когато са изпълнили основните изисквания, ние трябва да се извърши сравнение на по-сложни данни, които са специфични за областта. За да направите това ние ще създадем втори анотация, която ще стартира правила за обработка.

Много подобен на предишния анотация, една голяма разлика е, че в @ReconCustomRule задаваме клас, който ще започне на данни за сравнение, когато работи процес Recon. Можете да зададете само на класа, които ще бъдат използвани, за да си манипулатор назначен ценности и инициализира всеки клас, които сте задали. Този клас в пояснението ще използвате интерфейса на правила, които от своя страна ще бъдат използвани от водача да изпълнява правилата.
Нека да видим някои примери за това пояснение.
В този пример, ние използваме правило, което ще провери обмяна на валута не е в Съединените щати и в този случай, пропуснете сравнението на данните. За да направите това, трябва да се провери в полето за страна в един и същи запис.


Ето един пример, където ние се настройват параметрите на правилото, в този случай стойността на толерантност. За да сравните нашите данни за сравнение стойност не може да се отклонява с повече от 1000. Използване на параметър за определяне на стойността на отклонението ще ни позволи да използваме едни и същи правила за редица области, с различни стойности на толерантност. Единственият проблем е, че тези параметри са статични и не може да се дължи на динамичния характер на пояснителните бележки.

Както можете да видите има малко на гъвкавост в процеса на сравняване на данните от различни бази данни с помощта на две относително прости пояснения. За този конкретен случай процесът на сравнение на данните контрол анотация, така че в действителност ние преценяваме пояснения, които намираме в общите данни и да ги използвате, за да ръководи процеса.
заключение
Има множество статии по анотациите в Java, това, което правят и какви са правилата за тяхното използване. В тази статия, аз исках да покажа, въз основа на примери за защо трябва да ги използвате, и какви са ползите от това, може да получите.
Имайте предвид, че това е само началото. След като решите да се създаде анотации, ще трябва да се разбере как да ги използвате най-ефективно. Във втората част, аз ще ви покаже как да се справят с пояснението, използвайки Java размисъл.
- Джони Хакет, [email protected]