JAVA BEANS vs.EJB

本文介绍了JavaBean的概念及其在组件级别的重用价值,并详细解释了Enterprise JavaBeans (EJB) 的应用场景及分类,帮助读者理解JavaBean如何适应于企业级应用。
bean:豆子。
在类级别重用之上可以曰有组件级别的重用。所谓组件,可以是几个类打包在一起,但是对于外部调用而言是一个独立整体(一个个豆子的感觉)。构造一个组件的风格有多种,java提出一套统一的风格,这也可以叫标准,这里面最主要的风格就包括组件的可配置属性通过统一的get,set方法暴露。组件都按这种风格来构造,就方便了组件组装者角色采用统一的工具来获取组件的属性列表,并可一一进行配置。这个设计曰为introspection内省机制,按照这种风格构造的组件都称为bean(JavaBean)。
EJB:Enterprise JavaBean
也是按那套风格来构造的Bean组件。只是这类组件有专门的应用领域,当然就是企业信息系统。这类组件将挂在特约的容器环境下运行,其按企业应用需要有不同的运行时表现,分为session bean,entity bean,message bean等。从概念上说就是JavaBean for Enterprise application。类似地你也可以称Swing中包括的JTable等为GUI JavaBean:GJB,不过这个称呼没有被业界统一喊起来,只能自己喊着玩。
当遇到 `com.bea.core.repackaged.springframework.beans.factory.BeanCreationException` 且提示找不到 `com.lkm.ejb.orders.remote.OrderRemote` 类的 bean 定义时,可以尝试以下方法来解决: ### 检查配置文件 确保在 Spring 配置文件(如 `applicationContext.xml` 或者 Java 配置类)中正确定义了 `com.lkm.ejb.orders.remote.OrderRemote` 类的 bean。 - **XML 配置方式** ```xml <bean id="orderRemoteBean" class="com.lkm.ejb.orders.remote.OrderRemote"> <!-- 若有属性需要注入,可在此配置 --> </bean> ``` - **Java 配置方式** ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.lkm.ejb.orders.remote.OrderRemote; @Configuration public class AppConfig { @Bean public OrderRemote orderRemoteBean() { return new OrderRemote(); } } ``` ### 检查组件扫描 如果使用组件扫描来自动发现和注册 bean,要确保扫描路径包含了 `com.lkm.ejb.orders.remote` 包。 - **XML 配置** ```xml <context:component-scan base-package="com.lkm.ejb.orders.remote"/> ``` - **Java 配置** ```java import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan(basePackages = "com.lkm.ejb.orders.remote") public class AppConfig { // 其他配置 } ``` ### 检查类路径 确保 `com.lkm.ejb.orders.remote.OrderRemote` 类在类路径中。如果是使用 Maven 或 Gradle 进行项目管理,检查依赖是否正确添加。 - **Maven 依赖示例** ```xml <dependency> <groupId>your.group.id</groupId> <artifactId>your-artifact-id</artifactId> <version>your-version</version> </dependency> ``` - **Gradle 依赖示例** ```groovy implementation 'your.group.id:your-artifact-id:your-version' ``` ### 检查注解 如果使用注解来定义 bean,确保 `com.lkm.ejb.orders.remote.OrderRemote` 类上使用了正确的注解,如 `@Component`、`@Service`、`@Repository` 等。 ```java import org.springframework.stereotype.Service; @Service public class OrderRemote { // 类的实现 } ``` ### 检查依赖注入方式 确保在需要注入 `OrderRemote` bean 的地方使用了正确的依赖注入方式,如 `@Autowired` 或者构造函数注入。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class SomeService { private final OrderRemote orderRemote; @Autowired public SomeService(OrderRemote orderRemote) { this.orderRemote = orderRemote; } // 其他方法 } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值