Le CIO est généralement ce que nous appelons le renversement de contrôle, qui est également au centre de Java et est souvent demandé lors des entretiens.
L'inversion du contrôle (CIO en abréviation anglaise) donne le droit de créer des objets au cadre, qui est une caractéristique importante du cadre et n'est pas un terme spécial pour la programmation orientée objet. Il comprend l'injection de dépendance (DI) et la recherche de dépendance.
Le CIO change la façon dont le programme acquiert des objets, depuis le début d'un nouvel objet à la création et à l'injection d'un cadre tiers. Les cadres tiers spécifient généralement quelle implémentation est injectée par configuration, réduisant ainsi le couplage du code source.
Quel est le plus grand avantage du CIO?
Étant donné que la génération d'objets est définie dans XML, elle deviendra très simple lorsque nous devons passer à une sous-classe d'implémentation (généralement ces objets sont réalistes dans une sorte d'interface), modifiez simplement le XML, afin que nous puissions même implémenter le bouchage à chaud des objets (un peu comme l'interface USB et le disque dur SISH).
Le CIO peut être divisé en injection de dépendance (DI) et recherche de dépendance en fonction de la méthode d'implémentation.
DI est la principale approche technique pour contrôler l'inversion, divisée en injection de setter et injection de constructeur
Injection de setter
Après avoir instancié le bean en appelant le constructeur sans paramètre ou la méthode d'usine sans paramètre statique, la méthode du secteur du bean est appelée pour réaliser l'injection de setter.
classe publique jdbcdatasource () {pilote de chaîne privé; public void setDriver (String Driver) {class.forname (pilote); this.driver = driver;}} ...............Ensuite, implémentez le fichier XML de configuration d'injection de setter
<bean id = "dataSource"> <propriété name = "driver" value = "oracle.jdbc.oracledriver" /> <propriété name = "url" value = "jdbc: oracle: mince: @localhost: 1521: orcl" /> <propriété name = "user" value = "andReny" /> <propriété name = "mot de passe" value = "root" /> </ bean>
Injection de constructeur
Ceci est réalisé en appelant un constructeur avec des paramètres. Lorsque le conteneur est instancié, le constructeur correspondant sera exécuté en fonction du type de paramètre.
classe publique OracleUserDao implémente userDao {private jdbcdatasource dataSource; public oracleuserdao (jdbcdatasource dataSource) {this.datasource = dataSource;}} ................Spécifiez l'injection par l'indice de paramètres de construction
<bean id = "dataSource"> <proerty name = "driver" value = "oracle.jdbc.oracledriver" /> <propriété name = "url" value = "jdbc: oracle: mince: @localhost: 1521: orcl" /> <propriété name = "user" value = "Andreny" /> <propriété name = "mot de passe" value = "root" /> </ beeb id = "userdao"> <coreor-argindex = "0" ref = "dataSource" /> </ank>
Résumer
Ce qui précède est tout au sujet de l'analyse du code IOC de Spring, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
Explication détaillée du CIO et du DI du printemps
Introduction détaillée à la mise en œuvre de la simulation IOC de Spring
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!