1. Principio de primavera
La mayor cantidad de núcleo en el interior es el COI. La inyección dinámica hace que sea innecesario crear un objeto, y se puede producir automáticamente. Esto en realidad está usando la reflexión en Java. La reflexión es en realidad crear y llamar a los objetos dinámicamente en tiempo de ejecución. Spring es para crear dinámicamente objetos y métodos de llamada en el objeto en tiempo de ejecución, con el archivo de configuración XMLSPRING.
Spring tiene otro núcleo, AOP, que es una programación orientada a los aspectos, puede supervisar y controlar un cierto tipo de objeto (es decir, llamar al módulo que especificó antes y después de llamar a los métodos específicos de este tipo de objeto) para lograr la función de expandir un módulo. Estos se logran a través de clases de configuración.
Propósito de Spring: hacer la relación entre objetos (módulos y módulos) no relacionados a través del código, y todos se administran a través de la descripción de la clase de configuración (Spring ensambla dinámicamente objetos a través de la reflexión basada en estas configuraciones)
Recuerde: Spring es un contenedor, y solo los objetos en el contenedor tienen estos servicios y funciones proporcionadas por Spring.
El patrón de diseño más clásico utilizado en la primavera es: patrón de método de plantilla. (No lo presentaré aquí, es un patrón de diseño muy utilizado). Hay muchas configuraciones en primavera, que es difícil de recordar, pero la esencia de la primavera no es más que los dos puntos anteriores. Después de comprender los dos puntos anteriores, básicamente dominará la primavera.
Spreraop y COI
1. COI (inversionOfControl): inversión de control
1. COI:
Concepto: el control se transfiere del objeto mismo al contenedor; El contenedor crea instancias basadas en el archivo de configuración y crea dependencias entre cada instancia.
Core: Bean Factory; En primavera, las diversas instancias creadas por Bean Factory se llaman frijoles
2. AOP (programación orientada a los aspectos): programación orientada a los aspectos
1. Dos formas de poder:
Proxy estático:
Escribir clases de proxy para cada clase específica;
Escritura de una clase proxy para una interfaz;
Proxy dinámico:
Escriba un Invocathandler para un aspecto y luego tome prestada la clase de proxy en el paquete de reflexión JDK para generar dinámicamente las clases de proxy correspondientes para varias interfaces.
2. Proxy dinámico:
No hay necesidad de escribir una clase proxy. La máquina virtual genera una clase basada en la interfaz implementada por el objeto real. Instancia un proxy dinámico a través de la clase. Al instanciar el proxy dinámico, el objeto y el equipo real se inyectan en el proxy dinámico. El proxy dinámico expone el proxy dinámico. Cuando el cliente llama al método de proxy dinámico, el proxy dinámico obtiene el método del objeto real basado en la reflexión de la clase, llama al método de invocación del equipo y pasa el proxy dinámico, el método y los parámetros del método al método de Invoque del equipo. El método de Invoke realiza algún procesamiento antes o después de evocar el método del método.
1. Clases que generan proxy dinámico:
java.lang.refect.Proxy
2. El equipo debe implementar la interfaz Invocathandler para implementar el método de Invoke
3. Reflexión
¿Qué es un reembolso de la clase?
A través de la descripción de la clase, puede obtener la clase principal de la clase, la interfaz implementada, la clase interna, el constructor, el método y el atributo. Puede instanciar un objeto de acuerdo con el constructor, evocar un método, tomar el valor del atributo y cambiar el valor del atributo. Cómo obtener una descripción de clase:
Clase cls = class.class; Clase cls = object.getClass (); Class.forname ("classpath");¿Cómo obtener un método y evocarlo?
Clase cls = class.class; Constructor cons = cls.getConstructor (nueva clase [] {String.class}); Object obj = cons.newinstance (nuevo objeto [] {"aaa"}); Método método = cls.getmethod ("nombre del método", nueva clase [] {string.class, integer.class}); método.invoke (obj, nuevo objeto [] {"aa", nuevo entero (1)}); 4. ¿Cuáles son los tres métodos de inyección de primavera?
Setter
interfaz
constructor
5. ¿Cuáles son los archivos de configuración de la interfaz central y el kernel de Spring?
FactoryBean: los frijoles de fábrica implementan principalmente IOC/DI ApplicationContext AC = new FileXMLApPlicationContext ("ApplicationContext.xml"); Objeto obj = ac.getBean ("valor de identificación");6. 7 módulos de marco de resorte
El marco Pring es una arquitectura jerárquica que consta de 7 módulos bien definidos. Los módulos de resorte se construyen en la parte superior del contenedor central, que define cómo se crean, configuran y administran frijoles. Cada módulo (o componente) que constituye el marco de resorte puede existir solo o ser implementado junto con uno o más otros módulos. Las funciones de cada módulo son las siguientes:
Core Container: Core Container proporciona las funciones básicas del marco de Spring. El componente principal del contenedor central es BeanFactory, que es una implementación del patrón de fábrica. BeanFactory utiliza el modo Inversión de Control (COI) para separar las especificaciones de configuración y dependencia de una aplicación del código de aplicación real.
Contexto de Spring: el contexto de Spring es un archivo de configuración que proporciona información de contexto al marco de Spring. El contexto de primavera incluye servicios empresariales como JNDI, EJB, correo electrónico, internacionalización, capacidades de programación de suma de verificación.
Spring AOP: a través de la función de gestión de configuración, el módulo Spring AOP integra directamente las funciones de programación orientadas a los aspectos en el marco Spring. Por lo tanto, es fácil hacer que cualquier objeto administrado por Spring Framework Support AOP. El módulo AOP Spring proporciona servicios de gestión de transacciones para objetos en aplicaciones basadas en primavera. Al usar Spring AOP, la gestión de transacciones declarativas se puede integrar en la aplicación sin depender de los componentes EJB.
Spring DAO: la capa de abstracción JDBC DAO proporciona una jerarquía de excepción significativa que se puede utilizar para administrar el manejo de excepciones y los mensajes de error lanzados por diferentes proveedores de bases de datos. La jerarquía de excepciones simplifica el manejo de errores y reduce en gran medida la cantidad de código de excepción que debe escribirse (como las conexiones de apertura y cierre). Las excepciones orientadas a JDBC de Spring Dao siguen la jerarquía de excepción DAO común.
Spring ORM: El marco de Spring inserta varios marcos de ORM, proporcionando así herramientas de relación de objetos ORM, incluidos el mapa JDO, Hibernate y Ibatis SQL. Todo esto sigue a la transacción común de Spring y la jerarquía de excepciones DAO.
Módulo web Spring: el módulo de contexto web se basa en el módulo de contexto de la aplicación y proporciona contexto para aplicaciones basadas en la web. Por lo tanto, el marco de primavera admite la integración con los puntales de Yakarta. El módulo web también simplifica el trabajo de manejo de solicitudes de múltiples partes y parámetros de solicitud de enlace a objetos de dominio.
Marco de Spring MVC: el marco MVC es una implementación de MVC completamente funcional para la creación de aplicaciones web. A través de la interfaz de política, el marco MVC se vuelve altamente configurable, y MVC alberga una gran cantidad de tecnologías de vista, incluidas JSP, Velocity, Tiles, IText y POI.
Las capacidades del marco de Spring se pueden usar en cualquier servidor J2EE, y la mayoría de ellas son adecuadas para entornos no administrados. El punto central de Spring es: soporte para objetos de acceso a negocios y datos reutilizables que no están vinculados a servicios específicos de J2EE. No hay duda de que tales objetos pueden reutilizarse entre diferentes entornos J2EE (Web o EJB), aplicaciones independientes, entornos de prueba.
Resumir
Lo anterior es todo el contenido de este artículo sobre la simple exploración del principio de trabajo de Spring, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a este sitio:
Spring Framework Proyecto web Código práctico para compartir
Configuración y análisis Común Descripción de la clase de Spring
Implementación de programación de Java del ejemplo de inicio de sesión simple de SpringMVC
Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!