EJB经过注解方式注入并使用其它EJB或者服务、配置JBoss数据源

版权声明:本文为博主原创文章,转载请注明出处。

https://blog.csdn.net/Jerome_s/article/details/37103171 css

经过注解方式注入并使用其余EJB或者服务

真实项目EJB对象很是多,EJB之间也可以互相调用,html

在项目HelloWorld下新建接口Other 在cn.hqu.ejb3下:mysql

public interface Other {sql

    public abstract String sayMe();数据库

}app

 

 

新建实现类OtherBean在cn.hqu.ejb3下:less

public class OtherBean implements Other {ide

    @Overridepost

    public String sayMe() {性能

        return "Other";

    }

}

 

 

将Javabean变成无状态会话bean,接口默认是本地接口:

@Stateless

public class OtherBean implements Other {

    @Override

    public String sayMe() {

        return "Other";

    }

}

 

在HelloWorldBean调用OtherBean里面的方法。

获取OtherBean里面的方法:

获得一个EJB对象採用两种方法:採用JNDI查找。採用依赖注入。

经过JDNI查找:

把EJB部署到Jboss:执行Ant。deploy。

改动client代码:EJBCLient

 

public classEJBClient {

    public static void main(String[] args) {

       try {

           InitialContextctx = newInitialContext();

           HelloWorldhelloworld = (HelloWorld) ctx

                  .lookup("HelloWorldBean/remote");

           System.out.println(helloworld.sayHello("注入的苏志达"));

       }catch(NamingException e) {

           e.printStackTrace();

       }

    }

}

执行main输出:注入的苏志达说:你好!

Other,

调用成功。

代码:http://pan.baidu.com/s/1mgjxXt2

採用依赖注入的方式:


执行ant部署。执行clientmain,调用成功。

 

在项目中假设要使用别的EJB可以使用注入的方式。

@EJB Other other。

但是假设EJB找到这个接口被两个类实现了,会报错,因为它不知道咱们要注入哪个。

 

解决的方法:比方要注入的是OtherBean 那么可以使用

@EJB(beanName="OtherBean")Other other;明白指定要注入的的EJB,就不会出现上诉的问题。

@EJB仅仅能注入EJB,其余的比方定时服务 用 @Resource TimerService timerService;

注入数据源也是使用@Resource

@Resource(mappedName="") DataSource dataSource;

mappedName用来指定数据源的JNDI名称。

 

配置jboss数据源

数据源可以下降数据库链接对象建立的数量。来提高系统的执行性能。

         在Jboss建立数据源:

数据库的配置模版在F:\Java\jboss-4.2.2.GA\docs\examples\jca下找到相应数据库模版复制到桌面改动。

 

配置数据源

<datasources>

  <local-tx-datasource>

    <jndi-name>hquDS</jndi-name>

   <connection-url>jdbc:mysql://localhost:3306/hqutest</connection-url>

   <driver-class>com.mysql.jdbc.Driver</driver-class>

    <user-name>root</user-name>

    <password>jerome</password>

 

将Mysql的驱动文件复制到server\default\lib,从新启动Jboss。

配置好,进行公布,将数据源公布到Jboss,将数据源文件复制到server\default\deploy控制台提示公布成功。可以在信息里看到JNDI name。

 

进入Jboss控制台http://localhost:8080/jmx-console可以看到咱们刚刚公布的数据源:在jboss.jca下。

在jboss.jca下name=hquDS,service=ManagedConnectionPool点击进去控制台配置最小最大链接数等等信息从新启动Jboss配置就不见了,

可以经过mysql-ds.xml配置如配置最小最大链接数在<password>jerome</password>如下增长

   <password>jerome</password>

   <min-pool-size>3</min-pool-size>

   <max-pool-size>100</max-pool-size>

相关文章
相关标签/搜索