虽然把用在web和企业应用中的java 类称为bean已经有年头了,但在Java EE 6之前,并没有对"bean"进行过明确的定义。即使在EE的规范中,被称为“bean”的东西也有不同的含义,EJB bean,JSF的managed bean。此外,还有第三方的框架给"bean"赋予了各自的含义,比如Spring和Seam。虽然bean这个名词大家都很熟悉,但一直没有给他一个通用的、明确的定义。
最终Java EE6在Managed Beans规范中给出了一个通用的定义。Managed Beans被用来指代那些由容器管理(container-managed)的对象,他们和普通的POJO在编程上的区别很小。主要用来提供一些基本服务,比如资源注入,lifecycle回调和关注点切入等。一些辅助规范,比如EJB和CDI,是建立在这个基础模型之上的。这些规范一起为Java EE平台建立了统一的bean概念和轻量组件模型。
通常情况下,任何定义了默认构造方法(无参数)的Java类(或者在构造方法前加了@Inject注解)都是bean。任何JavaBean和EJB session bean都是,你不需要给他们添加任何特殊的代码或配置,只需要把他们打包在含有META-INF/beans.xml的包里,就可以把这些bean注入到他们的调用者之中了(打包是指jar,war或者EJB jar等)。你或许想要了解Why Is Beans xml Required In CDI
你过去编写的那些JavaBean和EJB目前不能利用CDI规范中定义的那些新服务,但你可以把他们和CDI一起用,也就是说,让container来创建和销毁他们的实例;把他们放在特定的context中;把他们注入到其他bean中;把他们用在EL表达式中;用qualifier annotation来区分他们;甚至给他们加上interceptors和decorators。完成这些并不需要你修改代码,好吧,最多需要你加上一些annotations。
转自:http://www.iteye.com/topic/625956
<!--EndFragment-->
分享到:
相关推荐
首先,让我们了解什么是Bean。在Spring中,Bean是应用程序中的业务对象,它们由Spring容器负责创建、配置和管理。Spring容器通过XML、Java配置或注解来定义Bean的定义,这些定义包含了如何创建Bean的信息。 **构造...
首先,让我们理解什么是Bean。在Spring中,Bean是IoC容器管理的对象,它们通常由Spring配置元数据(如XML或Java配置)定义。Bean可以通过简单的构造函数、工厂方法或工厂Bean来创建。 工厂Bean是实现了`org.spring...
首先,让我们了解什么是Bean。在Spring中,Bean是一个由Spring容器创建、管理的对象,通常代表应用程序中的一个组件或服务。Bean可以通过XML配置、注解或者Java配置类进行定义。Bean的创建、初始化、装配以及销毁都...
首先,我们来理解什么是Bean的装配。Bean的装配,也称为依赖注入,是指将对象所需的依赖关系(例如其他对象或服务)设置到该对象中,而不是让对象自己去寻找或创建这些依赖。这样可以降低对象之间的耦合度,提高代码...
首先,让我们了解什么是Bean。在Spring中,Bean是一个由Spring IoC容器管理的对象,它代表应用程序中的一个组件或服务。Bean可以通过XML配置文件、注解或Java配置类来定义。而自动扫描和管理Bean则是通过注解或配置...
首先,我们要理解什么是Bean。在JavaEE(或Spring框架)中,Bean通常指的是由IoC(Inversion of Control,控制反转)容器管理的对象,这些对象的生命周期和依赖关系由容器负责。通过注解,我们可以告诉Spring容器...
1. **什么是 Bean Shell** Bean Shell 是一个遵循 Java 语法的轻量级脚本引擎,它允许用户编写类似于 Java 的代码进行动态执行。Bean Shell 支持动态类型,这意味着你不需要提前声明变量的类型。 2. **特性** - *...
首先,我们来理解什么是Bean。在Java中,Bean是一种符合特定设计模式的Java类,通常用来封装数据和业务逻辑。它们可以被JSP和Servlet用来共享数据和实现业务操作。Bean类通常包含getter和setter方法,以供外部访问和...
首先,我们来了解什么是Bean。在Spring中,Bean是被Spring IoC容器管理的对象,它可以是任何Java对象,但通常代表应用程序中的业务组件。传统的Spring配置方式是通过XML文件来定义Bean及其依赖关系,而现在,我们...
在Spring框架中,Bean的两种主要作用域是Singleton和Prototype。Singleton Bean表示在整个Spring IoC容器中只有一个实例,而Prototype Bean则表示每次请求都会创建一个新的实例。这两种作用域的使用场景和实现方式都...
首先,我们要理解什么是Bean。在Spring中,Bean指的是由Spring容器管理的对象,这些对象可以通过XML、注解或者Java配置来定义。Spring容器负责创建Bean,管理它们的生命周期,并处理Bean之间的依赖关系。 1. **XML...
在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...
`@Autowired`和`@Bean`是两个关键注解,它们在实现DI时起着重要作用。让我们深入探讨这两个注解的工作原理,以及它们在注入bean时的顺序。 `@Autowired`注解由Spring提供,用于自动装配bean的依赖。当我们在字段、...
在本文中,我将讨论棘手的Spring Boot bean...那么您认为将要打印什么? 示例1 @SpringBootApplication public class Application { public static void main(String[] args) { ApplicationContext applicationConte
在Java编程中,我们经常需要将XML数据转换为Java对象,也就是所谓的Java Bean,以便于处理和操作。Java Bean是符合一定规范的Java类,通常具有getter和setter方法,用于封装数据。 XML到Java Bean的转换可以手动...
在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...
EJB系统主要包括两种主要类型的Bean:Session Bean和Entity Bean。 **Session Bean** Session Bean是EJB中的临时业务对象,代表客户端的一次会话或操作。它们通常用于封装业务逻辑,执行计算任务,或者协调与数据库...
EJB主要分为三种类型:无状态会话Bean(Stateless Session Beans)、有状态会话Bean(Stateful Session Beans)以及实体Bean(Entity Beans)。本篇将深入探讨有状态Bean和无状态Bean的概念、区别以及它们的应用场景...
Spring 中控制 2 个 bean 的初始化顺序 在 Spring 框架中,控制多个 bean 的初始化顺序是一个常见的问题。本篇文章将详细介绍如何控制 2 个 bean 的初始化顺序,提供了多种实现方式,并分析了每种方式的优缺。 ...
Spring Bean的生命周期是Spring框架中的核心概念,它涵盖了Bean从创建到销毁的全过程。了解这一过程对于优化应用程序的性能和管理资源至关重要。在Spring中,Bean的生命周期主要分为以下几个阶段: 1. **初始化阶段...