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>

相關文章
相關標籤/搜索