【问题标题】:How to create a object from refection but using dependency injection?如何从反射创建对象但使用依赖注入?
【发布时间】:2014-07-16 00:42:39
【问题描述】:

我有一组支持javax.inject 的类。但现在我需要使用反射来调用这些类。

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

但不是调用newInstance(),我想知道是否有可能将其作为注入对象获取?我该怎么做?

【问题讨论】:

    标签: java reflection dependency-injection inject


    【解决方案1】:

    这不是一个适用于任何地方的完整答案。但是如果你有一个 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;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      相关资源
      最近更新 更多