puntos de conocimiento muelle (A)

Primavera

Lo que es primavera

       La primavera es una ventanilla marco de desarrollo de código abierto de peso ligero. Se Ioc, (control de inversión) y el AOP (Aspect Oriented) como el núcleo, se lleva a cabo con el trabajo previo JavaBean básica sólo puede ser realizado por EJB, el EJB sustituido modelo de desarrollo hinchado, ineficiente.

       Descripción de la Primavera: El resorte está soluciones de capa de aplicación JavaEE, proporcionando SpringMVC y el marco de integración Struts en la capa de presentación; en la capa de negocio puede manejar la transacción, el registro y así sucesivamente; la capa de persistencia puede ser integrado MyBatis, Hibernate, JdbcTemplate etc. tecnología, por lo que, la primavera es una empresa para desarrollar un buen marco para el desarrollo de "ventanilla única". La primavera a través de la capa de la capa de presentación, lógica de negocio y la persistencia

Primavera Marco ventaja

       Primavera simple, imprecisa, y otras características se puede probar, no sólo el desarrollo para el desarrollo de servidor Spring, desarrollo java se puede aplicar a cualquier aplicación. Resume las ventajas de la primavera:

  1. el diseño no intrusivo

Primavera es un marco no invasivo que permite que el código de la aplicación para reducir al mínimo la dependencia de la trama

  1. desacoplamiento conveniente, el desarrollo simplificar

La primavera es una gran fábrica, puede crear todos los objetos y las dependencias de los trabajos de mantenimiento a la gestión de contenedores de primavera, lo que reduce el acoplamiento entre los componentes.

  1. apoyo AOP

Primavera proporciona soporte para AOP, que permitirá que algunas tareas comunes, tales como la seguridad, transacciones, registros y otro procesamiento centralizado, lo que aumenta la capacidad de reutilización del programa

  1. Soporte para el procesamiento de transacciones declarativa

Sólo necesita para completar la gestión de la configuración de los asuntos sin programación manual

  1. Fácil de prueba del programa

Primavera proporciona apoyo Junit4, se puede comentar fácilmente por el programa de ensayos de muelles

  1. Fácil integración de una variedad de excelente marco

Primavera no excluye una variedad de excelente marco de código abierto, su interior ofrece un apoyo directo para una variedad de excelente marco.

Arquitectura de primavera

       Spring Framework utiliza una arquitectura de capas, una pluralidad de módulos funcionales 20

       1, Core Container (contenedor núcleo)

contenedor de núcleo de muelles es la base del módulo establecido, el módulo que consiste de frijoles, módulo Core, los módulos de contexto, módulo de contexto-apoyo y un módulo SpEL

Frijoles módulo: Proporciona BeanFactory, se trata de una aplicación clásico patrón de la fábrica. Primavera gestionará objetos llamado frijol

Core El módulo de núcleo: proporciona un elemento básico de la estructura, incluyendo Ioc, (control inversión) y función DI (DI)

módulo de contexto Contexto: módulo construido sobre la base del núcleo y el frijol, que es el acceso al medio de cualquier definición del objeto y de configuración

módulo de contexto-soporte: proporciona soporte integrado para aplicaciones de bibliotecas de terceros incorporados primavera

       2, la integración de datos / Acceso

              módulo de JDBC: proporciona una capa de abstracción JDBC, reducir código

              módulos ORM:

              módulo de transacciones Transacción: apoyar la gestión de la interfaz especial y poner en práctica todas las clases de programación POJO y transacciones declarativas

       3, WEB

              módulo de servlet:

Entrar en la programación de primavera:

       Primavera descarga y estructura de directorios

              La primavera es la primera versión publicada en 2004,

              Versión Spring4.3.6 Nombre: spring-framework-4.3.6.RELEASE-dist.zip

              paquete Jar que contiene la fuente y

              Tarro paquete utilizado para desarrollar el código fuente para la visualización de la fuente subyacente

              docs carpeta contiene los estándares de documentación y desarrollo de la API de primavera

              libs carpeta contiene el paquete frasco y las necesidades de desarrollo de código fuente,

esquema de archivo de esquema carpeta contiene las necesidades de desarrollo, que define las restricciones en el archivo de configuración en el archivo

Procedimientos de entrada:

  1. Importar paquete jar:

2, la introducción de perfiles

  1. código fuente de escritura (clase construida llave en mano)

  1. interfaces de código UserDAO de escritura:

UserDao interfaz pública {

 

por ejemplo public void ();

 

}

  1. Escribir código UserDaoImpl clase de implementación:

public class UserDaoImpl implementos UserDao {

 

       @Anular

       por ejemplo public void () {

              // generada-Auto TODO Stub

              System.out.println ( "Hola primavera ...");

       }

 

}

  1. archivo de código de escritura de configuración;

<! - Instancia de la configuración de clase especificada a la primavera, primavera permiten que crear objetos ->

       <Bean id = clase "UserDao" = "com.bdqn.cn.dao.UserDaoImpl" />

  1. Escribir código para la clase de prueba:

public class {testDemo

      

       @Prueba

       método public void () {

             

// una instancia del objeto llamando al método

// UserDao ud = new UserDaoImpl ();

// ud.say ();

             

              1 // inicialización contenedor Spring, cargar el archivo de configuración

              ApplicationContext aplicación = nuevo ClassPathXmlApplicationContext ( "applicationContext.xml");

             

              // 2, adquirido a través de la instancia recipiente UserDAO

              UserDao ud = (UserDao) app.getBean ( "UserDao");

             

              // 3 pruebas, llamar a la forma

              ud.say ();

       }

      

      

}

Application Context resolución:

       / *

               * ApplicationContext representan contexto de aplicación, contenedor Núcleo elástico que se utiliza comúnmente

               * Es una interfaz

               * Crear por ClassPathXmlApplicationContext

               * búsquedas ClassPathXmlApplicationContext para el archivo de configuración XML especificado de la ruta de clases classPath, localizar y cargado Application Context

               Ejemplos de operación *

               * /

Inyección de dependencias:

inyección misma dependencia (inyección de dependencias, DI abreviado) y control inverso (Ioc,) significado

 

Inversión de Control: Después de usar el marco Spring, ya no es una instancia de objeto es creado por la persona que llama, pero creado por el contenedor Spring, la relación entre el recipiente de primavera será responsable de controlar el programa, no el código directamente controlada por el programa llamante de modo que el control se transfiere desde la aplicación al recipiente Spring, el control de la inversa que pasó, y esta es la inversión de control de la primavera

 

Desde la perspectiva de la primavera punto de vista recipiente, contenedor del resorte será responsable de objetos dependientes asignados a las variables miembro de la persona que llama, que es equivalente a inyectar una instancia del mismo depende de la persona que llama, esto es la inyección de dependencia de primavera

 

Dependiente de la implementación de la inyección:

  1. inyección método de propiedad setter

Construimos categorías:

      

UserService código de la interfaz de escritura:

UserService interfaz pública {

      

       por ejemplo public void ();

      

}

                     Escribe userServiceImpl Código clase de implementación:

       clase pública implementa UserServiceImpl UserService {

 

       // Aquí es una declaración de ningún valor específico asignado a la misma por lo que es necesario

       UserDAO UserDao privado;

      

       // parámetro pasado a UserDAO

       setUserDao pública vacío (UserDao UserDAO) {

              this.userDao = UserDAO;

       }

 

       @Anular

       por ejemplo public void () {

              // generada-Auto TODO Stub

              this.userDao.say ();

              System.out.println ( "Hola UserService UserDAO ...");

       }

 

}

Preparación de código de clase de prueba:

ApplicationContext aplicación = nuevo ClassPathXmlApplicationContext ( "applicationContext.xml");

             

              UserService nosotros = (UserService) app.getBean ( "UserService");

             

              us.say ();

                           

       2, el método de configuración de la inyección

              El código escrito userServiceImpl

              clase pública implementa UserServiceImpl UserService {

 

       // Aquí es una declaración de ningún valor específico asignado a la misma por lo que es necesario

       UserDAO UserDao privado;

      

       // constructor de paso de parámetros

       UserServiceImpl pública (UserDao UserDAO) {

              súper();

              this.userDao = UserDAO;

                     }

              }

              Escribir el código fichero de configuración:

              <! - la inyección de constructor ->

       <Bean id = "UserService" class = "com.bdqn.cn.service.UserServiceImpl">

             

              <Índice constructor-arg = "0" ref = "UserDao" />

      

              </ Bean>

              clases de prueba de escritura:

              @Prueba

       metodo2 public void () {

             

              ApplicationContext aplicación = nuevo ClassPathXmlApplicationContext ( "applicationContext.xml");

             

              UserService nosotros = (UserService) app.getBean ( "UserService");

             

              us.say ();

             

              }

 

Publicado 40 artículos originales · ganado elogios 7 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/sj_1993/article/details/105249035
Recomendado
Clasificación