1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/northersong-JFinal_IOC

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

Вы можете оставить комментарий после Вход в систему

Введение

IoC-плагин JFinal. Реализует автоматическое внедрение через сканирование аннотаций~~ Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/northersong-JFinal_IOC.git
git@api.gitlife.ru:oschina-mirror/northersong-JFinal_IOC.git
oschina-mirror
northersong-JFinal_IOC
northersong-JFinal_IOC
master