Весенний путь Javassist

Что такое Spring способ фрагмента кода, написанного на Javassist. Я знаю, что Spring использует CGLib, но я уверен, что для весеннего мира есть несколько полезных передовых практик.

ProxyFactory factory = new ProxyFactory();
factory.setSuperclass(Dog.class);
factory.setFilter(
        new MethodFilter() {
            @Override
            public boolean isHandled(Method method) {
                return Modifier.isAbstract(method.getModifiers());
            }
        }
    );

MethodHandler handler = new MethodHandler() {
    @Override
    public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {
        System.out.println("Handling " + thisMethod + " via the method handler");
        return null;
    }
};

Dog dog = (Dog) factory.create(new Class<?>[0], new Object[0], handler);
dog.bark();
dog.fetch();

Что производит этот вывод:

Woof!
Handling public abstract void mock.Dog.fetch() via the method handler

Редактировать:

В настоящее время я использую CGLib Enhancer, который включен в Spring 3.2.x, и я сомневаюсь в удобном способе и передовых методах.

Редактировать:

Я должен сказать, что мои прокси-классы не являются пружинными компонентами. Они не управляются Spring.


person Cemo    schedule 07.01.2014    source источник


Ответы (1)