2013-06-19 3 views
257

Je n'ai pas encore trouvé une définition de haut niveau de haricots de printemps que je peux comprendre. Je les vois souvent référencés dans la documentation et les livres de Grails, mais je pense que comprendre ce qu'ils sont serait bénéfique. Alors, quels sont les haricots de printemps? Comment peuvent-ils être utilisés? Ont-ils quelque chose à voir avec l'injection de dépendance?Quels sont les haricots de printemps dans le monde?

+2

Grails est construit sur Spring. Si vous n'êtes pas familier avec Spring, je vous suggère de lire au moins quelques informations afin de comprendre les technologies que vous utilisez. –

+14

Je pense que les commentaires ici souffrent du même problème que le PO voit dans les références dans les documents et les livres de Grails: ils sont seulement faciles pour les gens qui savent déjà ce qu'ils veulent dire. Je trouve que l'article de Wikipédia le décrit beaucoup mieux pour un débutant. – elias

+12

@MarcoForberg L'une des raisons pour lesquelles la version ancienne du printemps est le meilleur hit sur Google est que les gens continuent de lier à partir de lieux comme SO ... http://static.springsource.org/spring/docs/3.2.x/ spring-framework-reference/html/beans.html serait un meilleur endroit pour commencer ces jours. –

Répondre

137

Les objets qui forment le backbone de votre application et qui sont gérés par le conteneur Spring IoC sont appelés beans. Un bean est un objet qui est instancié, assemblé et géré par un conteneur Spring IoC. Ces beans sont créés avec les métadonnées de configuration que vous fournissez au conteneur, par exemple, sous la forme de définitions XML.

à apprendre sur les haricots et la portée de SpringSource:

Lorsque vous créez une définition de haricot ce que vous créez en fait est une recette pour créer des instances réelles de la classe définie par le grain de café définition . L'idée qu'une définition de bean est une recette est importante, car cela signifie que, tout comme une classe, vous pouvez potentiellement avoir plusieurs instances d'objets créées à partir d'une seule recette.

Vous pouvez contrôler non seulement les différentes dépendances et la configuration valeurs qui doivent être branchés sur un objet qui est créé à partir d'une définition de haricot particulier , mais aussi la portée des objets créés à partir d'une définition de haricot particulier. Cette approche est très puissante et vous donne la possibilité de choisir la portée des objets que vous créez via la configuration au lieu d'avoir à "faire le" dans la portée d'un objet au niveau de la classe Java. Les haricots peuvent être définis pour être déployé dans l'un d'un certain nombre de champs

+7

Donc, ce sont des objets que le conteneur gère et je n'ai pas besoin de toucher, mais si je veux accéder à un bean pour appeler des méthodes ou récupérer des propriétés, alors je peux "demander" Spring pour le bean? – grantmcconnaughey

+0

Un lien serait probablement utile: http://www.springsource.org/spring-framework – cjstehno

+2

@grantmc Oui les objets que vous voulez gérer à travers le conteneur, leur création leur rétention etc –

90

grains de printemps sont des objets tout cas qui sont gérés par le conteneur à ressort, à savoir, ils sont créés et câblés par le cadre et mis en " sac d'objets "(le conteneur) d'où vous pouvez les obtenir plus tard. La partie «câblage» est l'injection de dépendance, ce qui signifie que vous pouvez simplement dire «J'aurai besoin de cette chose» et que le framework suivra certaines règles pour vous fournir l'instance appropriée.

Pour quelqu'un qui ne sert pas au printemps, je pense Wikipedia Spring's article has a nice description:

centrale au Cadre de printemps est son inversion du conteneur de contrôle, qui fournit un moyen cohérent de la configuration et la gestion de Java objets à l'aide réflexion. Le conteneur est responsable de la gestion des cycles de vie des objets spécifiques: création de ces objets, appel de leurs méthodes d'initialisation, et configuration de ces objets en les câblant ensemble .

Les objets créés par le conteneur sont également appelés objets gérés ou haricots.Le conteneur peut être configuré en chargeant des fichiers XML ou en détectant des annotations Java spécifiques sur les classes de configuration. Ces sources de données contiennent les définitions de beans qui fournissent les informations requises pour créer les beans.

Les objets peuvent être obtenus au moyen soit dépendance recherche ou injection de dépendance. La recherche de dépendances est un modèle dans lequel un appelant demande à l'objet conteneur un objet avec un nom spécifique ou un type spécifique . L'injection de dépendances est un modèle dans lequel le conteneur transfère des objets par leur nom à d'autres objets, via des constructeurs, des propriétés ou des méthodes d'usine.

20

Eh bien, vous l'avez compris partiellement. Vous devez adapter les haricots en fonction de vos besoins et informer le conteneur Spring de les gérer en cas de besoin, en utilisant une méthodologie populairement connue sous le nom IoC (Inversion of Control) inventée par Martin Fowler, également connue sous le nom de Dependency Injection (DI).

Vous câblez les beans d'une manière, de sorte que vous n'ayez pas à vous soucier de l'instanciation ou de l'évaluation de toute dépendance sur le bean. Ceci est populairement connu comme Hollywood Principle.

Google est le meilleur outil pour explorer plus à ce sujet en plus des liens que vous auriez inondés avec ici dans cette question. :)

2

Au printemps, les objets qui forment le backbone de votre application et qui sont gérés par le conteneur Spring IoC sont appelés beans. Un bean est simplement un objet qui est instancié, assemblé et géré par un conteneur Spring IoC;

7

Le ressort a le conteneur IoC qui porte le sac de haricot; Création de maintenir et de suppression sont les responsabilités de Spring Container. Nous pouvons mettre le haricot au printemps par le câblage et le câblage automatique. Câblage signifie que nous le configurons manuellement dans le fichier XML et "Auto Wiring" signifie que nous mettons les annotations dans le fichier Java puis Spring scanne automatiquement le contexte racine où le fichier de configuration Java, le faire et mettre dans le sac de Spring.

Here is the detail URI where you got more information about Beans

7

Beans sont au cœur du printemps. Ce sont des objets Java standard instanciés et gérés par Spring.

Les haricots sont principalement utilisés pour:

  • Configurer printemps d'une certaine façon (paramètres de connexion de base de données, la sécurité, etc.)
  • Évitez hardcoding dépendances à l'aide l'injection de dépendance, de sorte que nos classes restent auto -contained et testable
4
  • grains de printemps sont juste objet des instances qui sont gérées par le conteneur IOC de printemps.

  • Le conteneur IOC de printemps porte le sac de haricot.La création, la maintenance et la suppression de Bean sont les responsabilités de Spring Container.

  • Nous pouvons mettre le haricot au printemps par le câblage et le câblage automatique.

  • Câblage signifie que nous le configurons manuellement dans le fichier XML. Auto Wiring signifie que nous mettons les annotations dans le fichier Java, puis Spring analyse automatiquement le contexte racine où le fichier de configuration Java, le faire et mettre dans le sac de printemps.

3

Les haricots de printemps sont des classes. Au lieu d'instancier une classe (en utilisant new), vous obtenez une instance en tant que bean castée vers votre type de classe à partir du contexte de l'application, où le bean est ce que vous avez configuré dans la configuration du contexte de l'application. De cette façon, l'application entière maintient une instance singleton-scope dans toute l'application. Tous les beans sont initialisés suivant leur ordre de configuration juste après l'instanciation du contexte d'application. Evénement Si vous ne disposez pas de beans dans votre application, toutes les instances de beans sont déjà créées au moment de la création du contexte d'application.

17

haricot JAVA

Un Java Bean est une classe Java qui devrait suivre les conventions suivantes:

  • Il devrait avoir un constructeur sans arg.
  • Il doit être sérialisable.
  • Il devrait fournir des méthodes pour définir et obtenir les valeurs des propriétés , connues sous le nom de méthodes getter et setter.

nous comprendre bean Spring

bean Spring

Spring Bean est rien de spécial, tout objet dans le cadre du printemps que nous initialisons par conteneur de printemps est appelé Spring Bean. Toute classe Java POJO normale peut être un Spring Bean si elle est configurée pour être initialisée via un conteneur en fournissant des informations de métadonnées de configuration.

haricot simple

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"); 
    } 
    } 

conteneur du CIO gérer le cycle de vie du haricot par métadonnées (spring.xml) fichier

mon 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> 

Je suis en train démontrer de la manière la plus simple

1

Pour le printemps, tous les objets sont des haricots! L'étape fondamentale dans le cadre de de printemps est

définir vos objets comme des haricots.Les haricots ne sont rien d'autre que des instances d'objet qui serait

créé par le framework de ressort en examinant leurs définitions de classe. Ces définitions

forment fondamentalement les métadonnées de configuration. Le cadre crée alors un plan pour lequel

objets

doivent être instancié, dont les dépendances doivent être définies et injecté, le

portée de l'instance nouvellement créée, etc., en fonction de cette configuration métadonnées .

Les métadonnées peuvent être fournis dans un simple fichier XML, tout comme dans le

premier chapitre. En variante, on pourrait fournir les métadonnées

Annotation ou configuration Java.

livre: Juste printemps

Questions connexes