Je n'ai pas encore trouvé de définition de haut niveau des Spring beans que je puisse comprendre. Je les vois souvent référencés dans la documentation et les livres sur Grails, mais je pense qu'il serait utile de comprendre ce qu'ils sont. Qu'est-ce que les Spring beans ? Comment peut-on les utiliser ? Ont-ils quelque chose à voir avec l'injection de dépendance ?
Réponses
Trop de publicités?Spring dispose d'un conteneur IoC qui transporte le sac de haricots ; la création, la maintenance et la suppression relèvent de la responsabilité du conteneur Spring. Nous pouvons intégrer le bean dans Spring par Wiring et Auto Wiring. Le câblage signifie que nous le configurons manuellement dans le fichier XML et le "câblage automatique" signifie que nous plaçons les annotations dans le fichier Java, puis Spring scanne automatiquement le contexte-racine où le fichier de configuration Java, le crée et le place dans le sac de Spring.
Voici l'URI détaillé où vous avez obtenu plus d'informations sur les haricots
-
Les Spring beans sont des instances d'objets gérées par le conteneur Spring IOC.
-
La création, la maintenance et la suppression des haricots relèvent de la responsabilité du conteneur Spring.
-
Nous pouvons mettre le haricot au printemps par le câblage et le câblage automobile.
-
Le câblage signifie que nous le configurons manuellement dans le fichier XML.
-
Le câblage automatique signifie que nous plaçons les annotations dans le fichier Java et que Spring analyse automatiquement le contexte racine dans lequel se trouve le fichier de configuration Java, le crée et le met dans le sac de Spring.
Les haricots de printemps sont des classes. Au lieu d'instancier une classe (en utilisant new
), vous obtenez une instance sous la forme d'un bean
vers votre type de classe à partir du contexte d'application, où le bean est ce que vous avez configuré dans la configuration du contexte d'application. De cette manière, l'application entière maintient une instance singleton-scope tout au long de l'application. Tous les beans sont initialisés selon leur ordre de configuration juste après l'instanciation du contexte d'application. Même si vous n'avez pas de beans dans votre application, toutes les instances de beans sont déjà créées au moment où vous avez créé le contexte d'application.
Dans le cas d'une application Spring boot, un haricot est simplement un objet Java créé par le cadre Spring au démarrage de l'application.
Le but de l'objet peut être à peu près n'importe quoi - une configuration, un service, une usine de connexion à une base de données, etc. - Spring ne s'en préoccupe pas vraiment.
La plupart des haricots dépendent d'autres haricots pour fonctionner. Par exemple, un gestionnaire d'entités peut avoir besoin d'une connexion à une base de données. Le cadre Spring est capable de déterminer automatiquement comment les beans doivent être reliés entre eux. En tant que développeur d'applications, il vous suffit de déclarer les beans dont vous avez besoin et ils apparaissent "comme par magie" dans votre application, prêts à être utilisés.
La configuration XML de Spring est composée de Beans et les Beans sont essentiellement des classes. Ce sont juste des POJO que nous utilisons à l'intérieur de notre ApplicationContext. La définition des Beans peut être considérée comme le remplacement du mot-clé new. Ainsi, chaque fois que vous utilisez le mot-clé new dans votre application, quelque chose comme :
MyRepository myRepository =new MyRepository ();
Où vous utilisez ce mot-clé nouveau c'est là que vous pouvez envisager de supprimer cette configuration et de la placer dans un fichier XML. Nous allons donc coder comme ceci :
<bean name="myRepository "
class="com.demo.repository.MyRepository " />
Maintenant, nous pouvons simplement utiliser l'injection de setter ou l'injection de constructeur. J'utilise l'injection de setter.
public class MyServiceImpl implements MyService {
private MyRepository myRepository;
public void setMyRepository(MyRepository myRepository)
{
this.myRepository = myRepository ;
}
public List<Customer> findAll() {
return myRepository.findAll();
}
}
2 votes
Grails est construit sur Spring. Si vous n'êtes pas familier avec Spring, je vous suggère au moins de lire quelques documents à ce sujet afin de comprendre les technologies que vous utilisez.
33 votes
Je pense que les commentaires ici souffrent du même problème que l'OP voit dans les références dans les docs et livres Grails : ils ne sont faciles que pour les gens qui savent déjà ce qu'ils veulent dire. Je trouve que l'article de Wikipedia décrit bien mieux les choses pour un débutant.
12 votes
@MarcoForberg l'une des raisons pour lesquelles l'ancienne version de Spring est en tête de liste sur Google est que les gens continuent à faire des liens vers elle à partir d'endroits comme SO... static.springsource.org/spring/docs/3.2.x/ serait un meilleur point de départ de nos jours.
5 votes
+1 @IanRoberts. Voici le actuel .
0 votes
Le fait qu'ils présentent IoC en disant que IoC est aussi connu sous le nom de DI n'aide pas. Ils sont liés oui, mais IoC est beaucoup plus large.
0 votes
J'ai aimé cette description des haricots de printemps : baeldung.com/fèves de printemps