春豆是什么?

我还没有find我能理解的Spring bean的高级定义。 我经常在Grails文档和书中看到他们,但是我认为理解它们是有益的。 那么Spring bean是什么? 他们如何使用? 他们与dependency injection有关吗?

构成应用程序的骨干并由Spring IoC容器pipe理的对象称为bean。 bean是一个实例化,组装并由Spring IoC容器pipe理的对象。 这些bean是使用您提供给容器的configuration元数据创build的,例如,以XML定义的forms。

更多来从SpringSource学习bean和范围:

当你创build一个bean定义的时候,你实际上正在创build的是一个创build由这个bean定义定义的类的实际实例的方法。 bean定义是一个配方的想法是很重要的,因为这意味着,就像一个类一样,你可能有很多从一个配方创build的对象实例。

您不仅可以控制要插入到从特定的bean定义创build的对象中的各种依赖项和configuration值,还可以控制从特定的bean定义创build的对象的范围。 这种方法非常强大,使您可以灵活地select通过configuration创build的对象的范围,而不必在Java类级别“烘烤”对象的范围。 豆可以被定义为被部署在许多范围之一中

Spring bean只是由Spring容器pipe理的对象实例,即它们是由框架创build和连接的,并放入一个“包对象”(容器)中,以便稍后可以获取它们。

“布线”部分就是什么dependency injection是关于什么的,意思是说你可以说“我会需要这个东西”,框架将遵循一些规则来给你一个正确的例子。

对于一个不习惯Spring的人来说,我认为维基百科Spring的文章有一个很好的描述 :

Spring框架的核心是控制容器的反转,它提供了使用reflection来configuration和pipe理Java对象的一致方法。 容器负责pipe理特定对象的对象生命周期:创build这些对象,调用它们的初始化方法,以及通过将它们连接在一起来configuration这些对象。

由容器创build的对象也称为托pipe对象bean 。 可以通过加载XML文件或检测configuration类上的特定Java注释来configuration容器。 这些数据源包含提供创buildbean所需信息的bean定义。

对象可以通过依赖查找dependency injection获得依赖查找是调用者向容器对象请求具有特定名称或特定types的对象的模式。 dependency injection是一种模式,其中容器通过构造函数,属性或工厂方法将对象按名称传递给其他对象。

那么你理解它的一部分。 您必须根据您的需要量身定制豆类,并通过使用Martin Fowler (也称为dependency injection) (DI)创build的普遍称为IoC( 控制反转 )的方法,通知Spring容器在需要时进行pipe理。

你以某种方式连接bean,这样你就不必关心实例化或评估对bean的依赖。 这就是众所周知的好莱坞原则 。

谷歌是最好的工具,除了在这个问题上你会被淹没的链接之外,还有更多的探索。 🙂

Spring有装有Bean的Bag的IoC容器; 创build维护和删除是Spring Container的职责。 我们可以通过布线和自动布线把豆子放到弹簧上。 布线意味着我们手动将其configuration到XML文件中,“自动布线”意味着我们把注释放在Java文件中,然后Spring会自动扫描其中的javaconfiguration文件的根上下文,并将其放入Spring的包中。

这里是详细的URI,你可以得到更多关于Beans的信息

JAVA bean

Java Bean是一个Java类,应遵循以下约定:

  • 它应该有一个无参数的构造函数。
  • 它应该是可序列化的。
  • 它应该提供方法来设置和获取属性的值,称为getter和setter方法。

让我们了解Spring bean

春豆

Spring Bean没什么特别之处,我们通过Spring容器初始化的Spring框架中的任何对象都称为Spring Bean。 任何普通的Java POJO类都可以是一个Spring Bean,如果它被configuration为通过提供configuration元数据信息通过容器进行初始化的话。

简单的豆子

 public class Triangle { private String name; //private member variable public Triangle() { // It should have a no-arg constructor } public String getName() { return name; } public void setName(String name) { this.name = name; } public void sayHello(){ System.err.println(getName() + " hello"); } } 

IOC容器通过元数据(spring.xml)文件pipe理bean的生命周期

我的spring.xml

 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id ="t" class= "com.ved.spring.springmaven.Triangle"> <property name="name" value="ved prakash"></property> </bean> </beans> 

我试图用最简单的方式来演示

是spring的核心。 它们是由Spring实例化和pipe理的标准Java对象。

豆主要用于:

  • 以某种方式configurationSpring(数据库连接参数,安全性等)
  • 避免使用dependency injection来硬编码依赖,以便我们的类保持自包含和单元可testing性
  • Spring bean只是Spring IOC容器pipe理的对象实例。

  • Spring IOC容器携带Bean.Bean的创build,维护和删除是Spring Container的职责。

  • 我们可以通过布线和自动布线把豆子放到弹簧上。

  • 接线意味着我们手动将其configuration到XML文件中。

  • Auto Wiring的意思是我们把注释放在Java文件中,然后Spring自动扫描javaconfiguration文件的根上下文,把它放到Spring的包里。

spring豆类是类。 不是实例化一个类(使用new ),而是从应用程序上下文中获得一个实例作为一个bean转换为您的类types,其中的bean是您在应用程序上下文configuration中configuration的。 这样,整个应用程序就可以维护整个应用程序的单例范围实例。 在应用程序上下文实例化后,所有的bean都按照其configuration顺序进行初始化。 如果在应用程序中没有获取任何bean,那么所有的bean实例在创build应用程序上下文后就已经创build。

在Spring中,构成应用程序主干的那些由Spring IoC容器pipe理的对象称为bean。 一个bean只是一个被Spring IoC容器实例化,组装和pipe理的对象。

对于Spring来说,所有的对象都是bean! Spring框架的基本步骤是

将你的对象定义为bean。 豆只不过是对象实例而已

由Spring框架通过查看它们的类定义来创build。 这些定义

基本上形成configuration元数据。 该框架然后创build一个计划

对象需要实例化,哪些依赖关系需要设置和注入,

新创build的实例的范围等等,基于这个configuration元数据。

元数据可以用简单的XML文件提供,就像在

第一章。 另外,还可以提供元数据

注释或Javaconfiguration。

书: 只是spring