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

通过注解方式注入并使用其他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部署到Jboss:运行Ant,deploy。

修改客户端代码: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

采用依赖注入的方式:

运行ant部署,执行客户端main,调用成功。

在项目中如果要使用别的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数据源

时间: 2024-11-08 23:24:40

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

Spring第七弹—依赖注入之注解方式注入及编码解析@Resource原理

    注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果. 手工装配依赖对象  手工装配依赖对象,在这种方式中又有两种编程方式 在xml配置文件中,通过在bean节点下配置,上边博客已经讲解,再次不在缀余. 在java代码中使用@Autowired或@Resource注解方式进行装配.但我们需要在xml配置文件中配置以下信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <be

EJB配置jboss数据源

1.数据源的模板在\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\docs\examples\jca\下2.编辑数据源文件,比如mysql-ds.xml,命名规则是名称-ds.xml结尾3.把数据源文件部署到jboss下,路径是jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy\;其中default是配置项,这个路径可以改的,这样就表示数据源配置成功了4.管理数据源路径:http://localhost:808

使用Spring注解方式注入properties文件内容,并配合Junit4+Spring做单元测试

先看看工作目录,然后再来讲解 1.建立config.properties,我的config.properties内容如下: author_name=luolin project_info=该项目主要是用于写一些demo 2.配置Spring配置文件,读取properties文件,并设置编码格式.大家从我的项目结构图中可以看到我用了两个Spring的配置文件,其实在spring-context.xml中没有配置其他内容,只是配置扫描com.eya.property这个包,大家可能会有疑问为何包的扫

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

目前Spring+Netty的开发方式这么火热,想把Netty注册成Spring组件就一定得用多例的方式,我不由得想吐槽明明这么常见的需求网上相关博客都少的很,这里给出Spring使用注解注入多例的方式: 在需要多例调用的类上加@Scope("prototype") 在进行注入时,不能直接使用@Autowired,否则注入的还是单例,需要使用工厂,最简单的是用 @Autowired private ObjectFactory<T> objectFactory; 对象进行注入

Spring注解方式注入Bean 究竟应该选择哪种?

这篇文章写得很好,还有StackOverFlow上的 这个

05_IOC容器装配Bean(注解方式)

IOC容器装配Bean(注解方式) 1.使用注解方式进行Bean注册 xml 方式: <bean id="" class=""> spring2.5版本 提供一组注解,完成Bean注册 * @Component 描述Spring框架中Bean 导入jar 和 xml方式开发是相同的 第一步 编写Class,在声明上 添加 @Component /** * 使用Spring2.5注解 注册Bean */ @Component("helloServ

Spring MVC 注解方式 静态类 注入bean

//核心代码 @Controller public class Ly4sIFutil {     private static Ly4sService myLy4sService;          Ly4sService getLy4sService() { return myLy4sService;     }          //核心代码     @Resource(name = "Ly4sService")       public void setLy4sService(L

spring-bean(注解方式-管理及依赖注入)

Bean管理(注解方式) 1.添加注解的依赖包:Spring-aop.jar 2.配置spring的XML文件的引入(查官方源码) 3.开启注解的扫描 <context:component-scan base-pachage="需要注解扫描的文件目录路径"/> 4.  在注入的类使用注解注入:@Component("id") 为了区别在三层架构使用不同的注解(效果一致,只是为了区分) @Repository:dao层 @Service:service层

SpringDI--依赖注入(注解方式)

Spring中提供一些作用在类上: @Component //每个层都可以,作用在类上 @Controller //作用在web层 @Service //作用在业务层 @Repository //作用在持久层 这三个注解都放在每层的类上面,会创建对应的对象,Component可以每层类上但建议使用其他三个注解增强 属性注解: @Value //用于注入基本类型 @Autowired //用于对象注入,默认按类型进行自动装配 @Qualifier //用于对象注入,按名称注入 @Resource