JFinal IoC плагин
JFinal_ioc — это IoC-плагин для JFinal, цель которого — обеспечить удобство и простоту внедрения зависимостей, подобно Spring.
Обычно в среде Spring мы используем аннотации для сканирования слоя сервисов, а затем внедряем их в контроллеры. В JFinal мы можем создать собственный плагин и глобальный перехватчик для реализации этих функций. Мы надеемся на ценные комментарии от экспертов.
Следуя традиции JFinal, плагин не требует настройки, поэтому добавление бинов происходит в классе, наследующемся от JFinalConfig.
Плагин JFinal_IOC
Можно добавлять бины с помощью методов add() и addPackage(). Бины могут быть реализованы как синглтоны. Можно настроить собственные ключи для получения бинов.
Методы получения бина: getBean(String key) и getBean(Class<?> key).
Наиболее важная функция — возможность использования аннотаций @Server и @Autowired для реализации IoC.
Пример:
@Override
public void configPlugin(Plugins me) {
// Добавляем плагин
Ioc ioc = Ioc.getIoc();
me.add(ioc);
// Автоматически сканируем классы с аннотацией @Server в пакете com.blog.service, второй параметр true означает режим single
ioc.addPackage("com.blog.service",true);
// Добавляем отдельный бин
// ioc.add("articleManager",ArticleManager.class,false);
}
@Override
public void configInterceptor(Interceptors me) {
// Настраиваем глобальный перехватчик, который автоматически внедряет зависимости на основе типа или значения поля с аннотацией @Autowired в контроллерах
me.add(new AutowiredInterceptor());
}
Контроллер BlogController:
/**
* Контроллер класса
*/
public class BlogController extends Controller {
// Можно использовать обе формы внедрения
@Autowired
private ArticleManager articleManager;
//= (ArticleManager)Ioc.getBean(ArticleManager.class);
Тестовый класс находится в пакете com.test:
package com.test;
import java.lang.reflect.Field;
import com.anna.config.Ioc.Autowired;
import com.anna.config.Ioc.Ioc;
import com.blog.service.ArticleManager;
public class Test {
public void print(){
System.out.println("Hello Ioc");
}
public static void main(String...args){
Ioc ioc = Ioc.getIoc();
ioc.addPackage("com.blog.service",true);
ioc.add("test",Test.class,true);
Test test = (Test) Ioc.getBean("test");
ArticleManager articleManager = (ArticleManager)Ioc.getBean(ArticleManager.class);
articleManager.pri();
test.print();
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )