salerik_das Code
Brought to you by:
teasnx
| File | Date | Author | Commit |
|---|---|---|---|
| project | 2015-04-08 |
|
[b590ee] Initial Commit |
| Readme.txt | 2015-04-08 |
|
[b590ee] Initial Commit |
Backend сервера построен на фраемворке Spring
Особый интерес представляет пакет "dao" (src\main\java\kik\core\dao), в нем находятся все функциональные элементы по работе DAS сервером
Особое внимание советую обратить в сторону Рефлексии ("src\main\java\kik\core\InjectionTst").
Основной смысл Рефлексии - по именам полей класса проиницилизовать его значения пришедшим объектом от DAS сервера,где поле атрибута "code" - имя поля Java класса,
таким образом, избавляемся от нудного перекладывания данных из одного объекта в другой.
Сама простая реализация Рефлексии, по опыту, достигается, когда внедряемые данные приходят в как можно простом виде (JSON строка).
Пример:
AttributeMeta Info:[{code: "inches",type: int},{code:"name", type:varchar}]
P.S. type - Для привидения типов.
public Class Product{
private int inches;
private String name;
private void setInches (int _inch){
this.inches=_inch;
}
private void setName (String _nm){
this.name=_nm;
}
}
public Class Injector{
public Injector(Att_Json, Object cl){
//Получаем все сеттеры
Set<Method> setters = ReflectionUtils.getAllMethods(cl.getClass(), ReflectionUtils.withModifier(Modifier.PUBLIC), ReflectionUtils.withPrefix("set"));
//получаем все геттеры
Set<Method> getters = ReflectionUtils.getAllMethods(cl.getClass(), ReflectionUtils.withModifier(Modifier.PUBLIC), ReflectionUtils.withPrefix("get"));
//Получаем все изсеры :)
Set<Method> iss = ReflectionUtils.getAllMethods(cl.getClass(), ReflectionUtils.withModifier(Modifier.PUBLIC), ReflectionUtils.withPrefix("is"));
//По каждому из Set'ов обходим все поля и внедряем ресурсы в соответсвии со значениями атрибутов в поле 'code'
for (Field field: cl.getClass().getFields()){
}
for (Method get :getters){
//mth.invoke();
//Вызов метода на исполнение, для получения//вставку значения
}
for (Method set :setters){
System.out.println();
}
for (Method is :iss){
}
}
}
Все. Добрая часть моделей данных умеет заполняться.
С Любыми вопросами обращайтеся по тел. +7 926 05 888 62 - Александр Митин