Как создать объект из доработки, но с помощью внедрения зависимостей?

1

У меня есть набор классов, который поддерживает javax.inject. Но теперь мне нужно вызвать эти классы, используя отражение.

o = clazz.newInstance();
...
method.invoke(o, parm1, param2 );

Но вместо вызова newInstance() мне нравится знать, есть ли возможность получить его как инъецируемый объект? и как я могу это сделать?

Теги:
reflection
dependency-injection
inject

1 ответ

0

Это не полный ответ, который работает в любом месте. Но если у вас есть контекст JNDI, вы можете использовать следующее, чтобы получить введенный объект. (Но здесь вам нужно знать имя jndi: например: java:module/PasswordDataRepository)

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public static <T> T getValue(String jndiName, Class<T> type)
    {
        try {
            Context ctx = new InitialContext();
            return (T)ctx.lookup(jndiName);
        } catch (NamingException e) {
            e.printStackTrace();
            return null;
        }
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню