IOC (inversion IF Control) - Le contrôle de l'inversion est l'une des deux technologies de base de Spring. Le CIO est généralement divisé en deux types: injection de dépendance (DI) et recherche de dépendance
Exemple d'utilisation:
1. Créez un nouveau projet et importez des forfaits JAR liés à Spring.
2. Créez une nouvelle couche d'accès aux données et une couche logique métier
Structure du code:
Exemple de code:
/ ** * Entity Bean * @Author BC * * / classe publique User {Private Integer ID; Nom d'utilisateur de chaîne privée; Mot de passe de chaîne privée; // Méthode Set Omise} / ** * Interface de couche d'accès aux données * @Author BC * * / interface publique UserdaOinterface {/ ** requête Toutes les informations sur les données * / Liste publique <utilisateur> GetUserList ();} / ** * Classe de données de données * Classe de données Public Liste <utilisateur> BC * * / classe publique UserDaOIMPL implémente UserDaOinterface {/ ** Simuler Database Data * / Private List <User> UserList; UserdaOIMPl () {UserList = New ArrayList <User> (); User u = New User (1, "Zhang SAN", "123"); UserList.add (u); u = nouvel utilisateur (2, "li Si", "456"); userList.add (u); u = nouvel utilisateur (3, "wang wu", "789"); userList.add (u); u = nouvel utilisateur (4, "zhao liu", "233"); userList.add (u);} @ priver-list list public> user> getUserList () {return userList;}}}} BC * * / interface publique UserBizInterface {/ ** requête toutes les informations de l'utilisateur * / Liste publique <Derser> GetUserList ();} / ** * Classe d'implémentation de la couche logique commerciale * @Author BC * * / classe publique UserBizImpl implémente UserBizInterface {/ ** Utiliser l'injection de printemps * / Private UserDaInterFace userdao.getUserList ();} / ** injecté via la méthode SET, de sorte que les propriétés qui doivent être injectées doivent être définies sur la méthode définie * / public void SetUserDao (userdaointerface userdao) {this.UserDao = userdao;} userdaOinterface GetUserDao () {return userdao;}}3. Écrivez le fichier de configuration ApplicationContext.xml
Informations sur l'en-tête:
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http://www.springframework.org/schema/p" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/Beans/wwwreans-4.1
Code de configuration:
<! - Objet de couche d'accès aux données: userdao -> <bean id = "userdao"> </-bean> <! - Business Logic Layer Object: UserBiz -> <bean id = "userBiz"> <! - Inject Data Access des propriétés de la couche via la méthode définie -> <propriété name = "userdao" ref = "userdao" /> </Ean>
Code de test:
classe publique UserBizTest {private applicationContext ctx; @Before public void load () {// read applicationContext.xml File de configuration ctx = new ClassPathXmlAplicationContex ctx.getBean ("userBiz"); // Appelez la méthode pour obtenir la liste d'informations utilisateur <server> userList = userdao.getUserList (); // transférer la collection pour (utilisateur utilisateur: userList) {System.out.println (user.getId () + "|" + user.getUsername () + "|" + user.getPassword ());}}}Dans l'exemple de code ci-dessus, nous utilisons l'injection de méthode SET. Il existe de nombreux types de méthodes d'injection de printemps et il existe de nombreux types de types d'attributs injectés. Veuillez vous référer aux détails:
Une brève discussion sur la méthode d'injection du Spring IOC et l'injection de différents types de données
Sur la portée des haricots
SPOPE = "Singleton" par défaut, indique qu'il n'y a qu'une seule instance de bean partagée dans le conteneur à ressort
scope = "Prototype" Obtenez une nouvelle instance à partir du conteneur à chaque fois
scope = "demande" Chaque demande HTTP créera une nouvelle instance de bean
scope = "Session" Partagez une instance de bean avec la même demande HTTP
scope = "Global Session" partage une instance de bean avec la même session globale
Résumer
Ce qui précède est l'intégralité du contenu de cet article sur l'exemple simple du Spring IOC et l'analyse des attributs de portée des haricots. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!