IOC (Inversión If Control): la inversión de control es una de las dos tecnologías centrales de Spring. El COI generalmente se divide en dos tipos: inyección de dependencia (DI) y búsqueda de dependencia
Ejemplo de uso:
1. Cree un nuevo proyecto e importe paquetes JAR relacionados con la primavera.
2. Cree una nueva capa de acceso a datos y capa de lógica comercial
Estructura del código:
Ejemplo de código:
/*** Entity Bean* @author BC***/public Class User {private Integer ID; private String UserName; private String Passwase; // Obtener método establecido omitido}/*** Interfaz de capa de acceso de datos de datos* @author bc**/public interface userDaointerface {/** consulta toda la información del usuario*/public List <user> getuserList ();}/** ** data class* class* class* class* class* @author BC**/public class UserDaoMpl implementa UserDaoOnterface {/** Simular datos de la base de datos*/Lista privada <Ser User> UserList; Public UserDaoMpl () {userList = new ArrayList <Serem> (); User U = New User (1, "SAN", "123"); "456"); userList.add (u); u = new user (3, "wang wu", "789"); userList.add (u); u = new user (4, "zhao liu", "233"); userList.add (u);}@anular public Listing <serem> getUserList () {regreso userList;}}}}}}}}}}}}}/lunte interfaz*@author bc**/pública interface userbizinterface {/** consulta toda la información del usuario*/lista pública <serem> getUserList ();}/***Business Logic Layer Implementation Class*@author BC**/public Class UserBizImImImpl implementa UserBizInterface {/** Usar inyección de primavera*/Private UserDainterface; getUserList() {return userDao.getUserList();}/**Injected through the set method, so the properties that need to be injected must be set to the set method*/public void setUserDao(UserDaoInterface userDao) {this.userDao = userDao;}public UserDaoInterface getUserDao() {return userdao;}}3. Escribe el archivo de configuración de aplicacionesContext.xml
Información del encabezado:
<? xml versión = "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/spring-beansd".
Código de configuración:
<
Código de prueba:
Public Class UserBizTest {private ApplicationContext ctx; @bebore public void Load () {// Read ApplicationContext.xml Archivo de configuración ctx = new ClassPathXMLApPlicationContext ("ApplicationContext.xml");}@test Void getUserListTest () {/Crear una capa de userbize de usuarios de usuarios de usuarios de UserBizeRDEAT) ctx.getBean ("userBiz"); // llamando al método para obtener la lista de información del usuario <Serem> userList = userdao.getUserList (); // Transferir la colección para (User User: UserList) {System.Println (user.getid () + "|" + User.getUsername () + " + User.getPassPass ());}}}}}En el código de ejemplo anterior, utilizamos la inyección del método establecido. Hay muchos tipos de métodos de inyección de primavera, y hay muchos tipos de tipos de atributos inyectados. Consulte los detalles:
Una breve discusión sobre el método de inyección del COI Spring y la inyección de diferentes tipos de datos
Sobre el alcance de los frijoles
Scope = "Singleton" predeterminado, indica que solo hay una instancia de frijol compartida en el contenedor de resorte
scope = "prototipo" Obtenga una nueva instancia del contenedor cada vez
scope = "solicitud" Cada solicitud HTTP creará una nueva instancia de Bean
Scope = "Session" Comparta una instancia de Bean con la misma solicitud HTTP
scope = "Sesión global" Compartir una instancia de Bean con la misma sesión global
Resumir
Lo anterior es todo el contenido de este artículo sobre el simple ejemplo de IOC de primavera y el análisis de atributos de alcance de los frijoles. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!