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

时间:2022-09-13 19:44:03

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

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

通过注解方式注入并使用其他EJB或者服务

真实项目EJB对象非常多,EJB之间也能够互相调用,

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

public
interface
Other {

    public
abstract
String sayMe();

}

 

 

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

public
class
OtherBean implements Other {

    @Override

    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通过注解方式注入并使用其它EJB或者服务、配置JBoss数据源

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSmVyb21lX3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

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

改动client代码:EJBCLient

 

public
class
EJBClient {

    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

採用依赖注入的方式:

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

执行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>

EJB通过注解方式注入并使用其它EJB或者服务、配置JBoss数据源的更多相关文章

  1. EJB通过注解方式注入并使用其他EJB或者服务、配置JBoss数据源

    通过注解方式注入并使用其他EJB或者服务 真实项目EJB对象很多,EJB之间也可以互相调用, 在项目HelloWorld下新建接口Other在cn.hqu.ejb3下: public interfac ...

  2. spring注解方式注入

    1.通过Resource注入 1.在属性上注入 1.默认注入 即不指定spring容器里面的名字 匹配规则:先通过属性的名字查找 再通过属性类型与实现类类型匹配查找 当有两个实现类会报错 2.通过指定 ...

  3. Spring第七弹—依赖注入之注解方式注入及编码解析&commat;Resource原理

        注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果. 手工装配依赖对象  手工装配依赖对象,在这种方式中又有两种编 ...

  4. spring注解方式注入bean

    用注解的方式注入bean,spring的配置文件也要增加一些约束和导入注解所在的包 applicationContext.xml <?xml version="1.0" en ...

  5. EJB配置jboss数据源

    1.数据源的模板在\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\docs\examples\jca\下2.编辑数据源文件,比如mysql-ds.xml,命名规则是名称-ds. ...

  6. Spring使用注解方式注入多例的方式

    目前Spring+Netty的开发方式这么火热,想把Netty注册成Spring组件就一定得用多例的方式,我不由得想吐槽明明这么常见的需求网上相关博客都少的很,这里给出Spring使用注解注入多例的方 ...

  7. Ibatis&comma;Spring整合(注解方式注入)

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  8. 关于spring的注解方式注入默认值&lpar;转&rpar; -- 首字母小写

    1.是首字母小写 比如 UserAction对应的id是userAction 可以通过ApplicationContext 对象的act.getBean("userAction") ...

  9. spirngboot 注解方式注入自定义参数

    在代码中 @value("oracle.user") private String user; 在配置文件中 oracle.user=root

随机推荐

  1. ABAP 内表的行列转换

    http://www.cnblogs.com/qlp1982/p/3370591.html

  2. 动态规划:NOI 2009 管道取珠

    [NOI2009] 管道取珠 输入文件:ballb.in   输出文件:ballb.out   简单对比 时间限制:1 s   内存限制:512 MB #include <iostream&gt ...

  3. IT题库8-死锁

    一.死锁原理 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等 ...

  4. 学习Spring必须了解的基础知识——回调机制

    上面这张图如果能看得懂就能理解什么是回调机制: A对象在调用a()方法时会调用B对象的b()方法,b()方法必须能调用A对象的callback()方法. 谁白了:a()方法有B对象b()方法的引用,b ...

  5. Codeforces 1068 - A&sol;B&sol;C&sol;D&sol;E - &lpar;Done&rpar;

    链接:http://codeforces.com/contest/1068 A - Birthday - [计算题] 题意:一共 $N$ 种硬币,我已经有其中 $K$ 种,我的 $M$ 个朋友每人送我 ...

  6. java基础-day24

    第01天 java基础加强 今日内容介绍 u Junit单元测试及反射概述 u 反射操作构造方法.成员方法.成员属性 u properties的基本操作 u 综合案例 第1章   Junit单元测试及 ...

  7. hasura graphql server 集成gitlab

    默认官方是提供了gitlab 集成的demo的,但是因为gitlab 一些版本的问题, 跑起来总有问题,所以查找相关资料测试了一个可以运行的版本 项目使用docker-compose 运行 参考 ht ...

  8. 创建template模板

    创建一个自己常用的快捷键的模板. 1.选择window-->preferrence--搜索temp--java 2.点击new 3.根据自己的习惯起一个名字 4.比如syso 5.语法不会,就找 ...

  9. 获取每月第一天最后一天 java

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //获取前月的第一天 Calendar cal_1=Ca ...

  10. 话说文件系统——VFS简介(二)

    linux可以与很多文件系统完美的结合,可以很容易地把Windows.其他Unix系统.甚至在市场上很小众的文件系统轻松地移植到linux中. 这对于linux今天的成功是功不可没的,那为什么这么厉害 ...