1.前言
在EJB中也为我们提供了依赖注入的功能,关于什么是依赖注入,在此就不再多分析了。
2.EJB注入
在EJB中注入一般使用的就是@EJB或者@EJBS,两者的区别莫过于注入的类可以实现多个接口。下面来看一下@EJB用到的属性。
beanInterface:该属性指定被注入EJB所实现的接口
name:该属性用于指定被注入Bean在JNDI ENC中注册项名称,该名称在不同应用服务器中可能存在差异。
beanName:该属性指定被注入EJB的名称,其值与被注入Bean中@StateLess.Name所指定的值相同。
mappedName:该属性指定被注入EJB的JNDI名。
3.Demo展示
被注入的Bean实现类
- package com.Injection;
- import javax.ejb.Remote;
- import javax.ejb.Stateless;
- @Stateless
- @Remote (RemoteHello.class)
- public class HelloBean implements RemoteHello{
- public String SayHello(String name) {
- return name+"˵,HelloBean远程调用!";
- }
- }
注入类
- package com.Injection;
- import javax.ejb.EJB;
- import javax.ejb.EJBs;
- import javax.ejb.Remote;
- import javax.ejb.Stateless;
- @Stateless
- @Remote (Injection.class)
- public class InjectionBean implements Injection {
- @EJB (beanName="HelloBean")
- RemoteHello helloworld;
- public String SayHello() {
- return helloworld.SayHello("你好吗");
- }
- }
4.疑惑
做这个例子的时候,发现如果不提供set方法的话,也能够注入成功。不知道为何……………………