当前位置: 代码迷 >> J2EE >> 手动new的对象,是否可以通过@EJB注入属性解决方法
  详细解决方案

手动new的对象,是否可以通过@EJB注入属性解决方法

热度:107   发布时间:2016-04-22 00:45:05.0
手动new的对象,是否可以通过@EJB注入属性
各位达人,请问手动创建的对象,是否可以通过@EJB注解来注入对象。。

例如
class Demo{
@EJB
private MyClass myCl;
private String param

Demo(String param){
this.param = param
}
}

如果在代码使用new来创建,而不是由EJB框架来创建,那么能否自动注入MyClass对象。

Demo demo = new Demo("p");

//myCl.toString();

谢谢!

------解决方案--------------------
Java code
package sh.pl;import java.lang.annotation.Annotation;import java.lang.reflect.Field;import javax.ejb.EJB;public class TestEJBContainer {    public static void injectEJB(Object obj) throws IllegalArgumentException, IllegalAccessException, InstantiationException {        if (obj == null) return;        Field fields[] = obj.getClass().getDeclaredFields();        for (Field f : fields) {            Annotation a = f.getAnnotation(EJB.class);            if (a != null) {                //注入                f.setAccessible(true);                f.set(obj, f.getType().newInstance());                f.setAccessible(false);            }        }            }        public static void main(String[] args) {        Demo demo = new Demo("p");        try {            injectEJB(demo);            System.out.println(demo.getMyCl().toString());        } catch (Exception e) {            e.printStackTrace();        }             }}
------解决方案--------------------
不可以。
从spring容器中拿出的对象才可以。
  相关解决方案