关于ejb的注入

来源:互联网 发布:子曰二三子以我为隐乎 编辑:程序博客网 时间:2024/05/22 13:37

如何在一个类里面得到ejb对象呢?

private Other other=new Other()这样得到的不是ejb对象,只是一个简单的JAVA对象

得到ejb对象的方法有两种:
一种是通过jndi的方法,通过查找的方式.
一种是通过注入的方式,通过注解来注入,这个注解就是@EJB
如@EJB Other other, 如果Other被两个类实现了呢?那么可以通过@EJB的属性(beanName)来指定,而那个ejb的名称默认就是类的简单名称,当然也是可以改的.


注入ejb:

@Stateless

@Remote (Injection.class)

public class InjectionBean implementsInjection {

       @EJB(beanName="HelloBean") LocalHello helloworld;

       publicString SayHello() {

           return helloworld.SayHello("注入者");

       }

}

@Resource注解可以注入一些服务性的东西.如数据源

注入数据源:

@Resource(mappedName = "java:/DefaultMySqlDS") DataSource myDb;

        Connection conn = null;

        try {

            conn = myDb.getConnection();

            Statementstmt = conn.createStatement();

            ResultSet rs = stmt.executeQuery("SELECTstudentNameFROM student");

            if (rs.next())  str = rs.getString(1);  rs.close();

            stmt.close();

        } catch (SQLException e) {

            e.printStackTrace();

        }finally{

            try {

               if(null!=conn && !conn.isClosed()) conn.close();

            } catch (SQLException e) {

               e.printStackTrace();

            }

        }