Empezando con Spring 1

/ **
Pregunta
spring_day01
1. Si se configuran varios tipos de acuerdo con el tipo, se lanzará una excepción √
2. ¿Hay alguna restricción establecida en el archivo de configuración applicationContext.xml?
3. Las tres formas de instanciar el Bean:
1. Común
2.3 inicializado con algún marco
donde se usa?
4. Métodos y atributos en la
herencia 5.1 ¿OGNL opera principalmente la pila de valores struts2? Use expresiones OGNL en sql dinámico 2.
Expresión EL: manipule algunos objetos y valores relacionados relacionados con el servlet
  3. Expresión spEL: manipule el bean
6. ¿Cuál es la diferencia entre el método de fábrica estática y el método de configuración del método de fábrica de instancias?

* /


The Spring: jerárquico, javaSE / EE stop (pila completa), marco de código abierto liviano


1.Capa de
presentación jerárquica javaEE (los datos de la página, programación de salto de página), por ejemplo,
capa de servicio jsp / servlet (procesamiento empresarial y lógica funcional, control de transacciones), como
la capa de persistencia del servicio (acceso y encapsulación de datos, e interacción con la base de datos), como dao, mapeador,


capa de presentación web (servlet, jsp, struct2, springmvc)
, capa empresarial empresarial (JavaBean, EJB (Enterprise JavaBean))
Capa de integración EIS (capa de persistencia) (jdbc, hibernate, mybatis, operación crud de la base de datos)

2. El
Spring único proporciona capas JavaEE de la capa de
presentación de la solución : struct1, struct2, spring MVC
capa empresarial: Ioc, AOP, cosas
persistencia de control : jdbcTemplate, mybatis, springDataJpa frame (mapeo relacional de objetos) integración


3.
¿ peso ligero ?

Arquitectura de Spring 1. Spring es
una arquitectura en capas que contiene alrededor de 20 módulos de elementos funcionales.
Spring Framework Runtime
1.Acceso / integración de datos (JDBC, ORM, OXM, JMS, Transactions)
2.Web (WebSocket, Servlet, Web.Portlet)
3.Caso de contenedores (Beans, Core, Context, SpEl)
4.Test, AOP , Aspecs, Instrunentation, Messaging


1. El Core Container (Core Container) incluye (Core, Bean, Context, módulos EL) 1. Los
módulos core y Beans proporcionan las funciones más básicas de Spring. El concepto básico aquí es BeanFactory. Las
funciones : 1. Proporcione [IoC] y [Funciones de inyección de dependencia]
2. Proporciona una implementación clásica del patrón Factory para eliminar la necesidad del patrón de procedimiento único
y realmente le permite separar las dependencias y la configuración de la lógica del programa.
2. El módulo de contexto se basa en Core y Bean


3. Módulo de lenguaje de expresión de lenguaje de expresión


2. Acceso a datos / Integración de base de datos / parte de integración
1. Módulo JDBC
2. El módulo ORM proporciona la capa de integración de API de mapeo de "objeto / relación" ( JPA, JDO, Hibernate, iBatis)
utilizan el paquete ORM para mezclar y utilizar todas las características proporcionadas por Spring para el módulo 3.OXM de
mapeo de "objeto / relación"
, proporcionando una capa de abstracción que admite mapeo de objetos y XML
4.Módulo JMS,
5 .Módulo de transacciones, soporte para el programa a través de una simple declaración de cosas gestionadas

3.Web
1.Módulo web proporciona funciones Web básicas. Por ejemplo, carga de varios archivos, xxxx
2. Módulo Web-Servlet, que proporciona implementación de aplicaciones Web Modelo-Vista-Controlador (MVC)
3. Módulo Web-Portler, proporciona la implementación de MVC en el entorno Portler.

4.
AOP 1. El módulo AOP, que proporciona una implementación de programación orientada a aspectos que se ajusta a la especificación de AOP Alliance, le permite definir interceptores de métodos y puntos de entrada
2. El módulo Aspects, que proporciona la integración de AspectJ
3.Módulo de Instrumentación, que brinda soporte de herramientas a nivel de clase e implementación a nivel de ClassLoader

5.
Prueba 1.Módulo de prueba, que brinda soporte para probar componentes Spring usando Junit y TestNG.


# Implementación de inversión de control de IoC (Inverse of Control)
para resolver el problema de acoplamiento del código
introducido en la planta (tercero), el programa original creó manualmente la gestión de objetos UserDaoImpl dependiente,
a la fábrica para crear una
implementación subyacente de IoC administrativa : Plant Design modo + reflexión + archivo de configuración (xml)

# Inyección de dependencia DI para lograr
DI: cuando la inyección de dependencia de inyección de dependencia es responsable del objeto Bean creado en el marco de primavera, la dinámica dependerá
del objeto inyectado en el componente Bean (simplemente, puede be otro El objeto Bean se inyecta dinámicamente en otro Bean)
* IOC: Inversión del control, el derecho de crear y administrar objetos se otorga al contenedor de resortes, y los objetos se crean a través de la fábrica de resortes
* DI: Crear y administrar múltiples objetos en el contenedor de primavera a través de la etiqueta de propiedad, inyecte el objeto en el objeto del que necesita depender
* Por ejemplo: en este ejemplo, el objeto userDao se inyecta en el objeto userService, siempre que el userService
* se cree en la fábrica de primavera , también se puede hacer referencia a userDao al mismo tiempo

/ * 
IOC (Inversión de control):
Control: Controla el derecho a crear y administrar objetos. A través del contenedor de resorte (es decir, Aplicación), el objeto crea
DI (inyección de dependencia) a través de la fábrica de resorte :
En el contenedor applicationContext.xml, use la etiqueta de propiedad para inyectar las dependencias de objeto requeridas en el objeto correspondiente.
¿El objeto dependiente realizado se crea al mismo tiempo que el objeto dependiente?
* /


Fábrica de Spring (entender)
# applicationContext significa contexto de aplicación.
La función es: cargar un archivo de configuración en el marco de Spring, para construir un objeto de fábrica Spring, Objeto de contexto de Spring que es un contenedor, también
denominado Contenedor de Spring

/ *
applicationContext El objeto de contexto de Spring se llama contenedor:
el ApplicationContext nuevo nuevo AC = el ClassPathXmlApplicationContext ("applictionContext.xml");
Object Object = ac.getBean (el id / nombre mencionado anteriormente);
on: ac para obtener información sobre la imagen creada a partir del archivo de configuración (xml).
bajo: el objeto es creado por ac que
significa: desde un archivo de configuración Al contexto del objeto de creación del proyecto
* /


# ApplicationContext es solo una subinterfaz de BeanFactory (Bean factory, Bean es un objeto java)


# ApplicationContext BeanFactory se extiende para proporcionar más funcionalidad


toma # BeanFactory se carga diferida, se inicializará la primera vez getBean
uso:
bf BeanFactory = new nuevo la XmlBeanFactory (nuevo nuevo FileSystemResource (D: \\ applicationContext.xml "));
# ApplicationContext más poderoso, por lo que ahora básicamente nadie desarrolló usando BeanFactory.Tres


formas de instanciar el bean #
/ *
1. sin constructor de argumentos
todas las instancias de bean como se describió anteriormente
2. método de fábrica estática
1. crear una clase BeanFactory
este es un método estático que tiene : (cuando el perfil estático hace referencia a la clase de fábrica, por ejemplo, cuando el objeto de retorno especificado
instancia método-fábrica = "métodos de clase de fábrica estática", que llama automáticamente al método estático, devuelve el objeto)
uso: contenedor de resorte en el ejemplo de químico clase, es decir, el código de inicialización puede ser otros objetos
3. método de fábrica de instancia
1. Crear una clase de fábrica
que es un método común para devolver la instancia del objeto
<bean id = "bean3" factory- bean = "bean3Factory" factory-method = "getBean3" />
Cuando la llamada esté en la primavera cuando bean3, el equivalente hace referencia a bean3Factry, luego llama a un método en el que getBean3
devuelve objetos de ejemplo, lo que permite la instanciación bean3
individual: un método de fábrica estático y un ejemplo de configuración de por qué diferente método de fábrica:
diferente:
1. Un método estático factory asigna directamente su propio nombre de clase de ruta completa al bean que necesita instanciarse y luego llama a su propio método estático.
2. La fábrica de instancias es cuando el bean se crea por reflexión, el bean hace referencia a la clase de fábrica de instancias para instanciar el objeto.

* /


# Alcance de Bean.
  Bajo qué circunstancias son válidos los objetos bean creados por Spring.
  Singleton: Solo hay una instancia de Bean en el contenedor Spring IoC. Bean existe en un singleton.
Prototipo: Cada vez que se llama al bean desde el contenedor , Devuelve una nueva instancia, es decir, cada vez que se llama a getBean (), es equivalente a ejecutar un
nuevo XxxBean ()
/ *
Resumen: singleton: singleton, inicializado en el contenedor de primavera, bean se inicializa y el objeto obtenido cada vez es el mismo
  prototipo de valor : en muchos casos, se inicializa durante getBean, y el bean obtenido cada vez no tiene el mismo valor.
  
Nota: tipo singleton singleton, incluso si no se llama getBean para crear un objeto de esta clase, el objeto inicializará su valor.
La ejecución del constructor incorporado inicializa la
razón: cuando los contenedores de resorte de inicialización, el tipo Singleton singleton se ha inicializado bean
* /


# Bean Life Cycle
/ *
especificado en el bean de inicialización en el archivo de configuración xml, el
ciclo de vida del método de destrucción necesariamente incluye (inicialización, destrucción)
Inicialización: xml: init-method = "corresponde al nombre del método de inicialización del bean en el"
destrucción: xml: destroy-method = "El nombre del método de destrucción en el bean correspondiente"
Nota: Solo el bean cuyo tipo de alcance es singleton puede eliminar manualmente el método
* /


# Inyección de dependencia de atributos de bean
/ *
2 formas (inyección de constructor , la propiedad de inyección de setter)
1.
etiqueta de constructor <constructor-Arg>
2.etiqueta de propiedad de setter
<property>
cuando <ref> objeto asignado al bean
simplemente: es decir, al inicializar, un bean necesita asignar
* /


# P nombre uso de space
/ * la
nueva versión p del espacio de nombres spring2.5 se introdujo en
una propiedad mejorada de la etiqueta que depende del establecedor de propiedades de inyección
por referencia en las etiquetas beans xmlns: p = "http://www.springframework.org/schema/ p"
a través de reglas específicas
p: <nombre de atributo> = "xxx" valor constante incorporado
p: <nombre de atributo> _ref = "xxx" se refieren a otros objetos Bean
para simplificar las etiquetas de propiedad en su lugar
* /


# expresión sqEL
/ *
Lenguaje de expresión Spring Expresión de lenguaje
spring3. x la nueva versión de las características de
uso común:
# {} bean de referencia bean
# {} bean.value propiedad del bean de referencia
# {bean.function ()} método de
cálculo del bean de referencia :
# 1 + {1}
operación de caracteres:
# {" tom ".toUpperCase ()}
.....
Alcance de uso:
(relacionado con la operación del bean)
La etiqueta del bean en el archivo de configuración applicationContext.xml se usa para consultar los datos del objeto bean, y se usa en junto con el
espacio de nombres p para asignar valores al objeto bean.
* /


/ *
DI (inyección de dependencia); inyección de dependencia
1, inyección de frijol (inyectar información de otros frijoles en un frijol)
* Este frijol es el frijol en la etiqueta, y el frijol exterior es el objeto de frijol inyectado
tipo de etiqueta de frijol usando <property>: implantando el método setter de acuerdo con el
nombre de la clase : externo generalmente llamado el identificador / nombre del bean, el nombre del método de acuerdo con el final en la escritura actual del bean setter prevalece
ejemplo: el método actual del bean setter El nombre del sufijo está en minúsculas, por ejemplo, setterXxx corresponde a name: xxx.
ref: se refiere a un objeto bean, el valor es id / name

* p namespace en lugar de la etiqueta <property>


2. Inyección de propiedad del bean (inyección de información en un bean)
a, inyección de setter
usando <property>
nombre de etiqueta : métodos setter de los sufijos en minúsculas del bean, como el valor del atributo de nombre SetXxx- luego xxx.
valor: datos simples
ref: datos complejos (refiriéndose a otros beans)

* p espacio de nombres en lugar de etiqueta <property>
p: <nombre de propiedad> = "xxx" introducir valor constante
p: <nombre de propiedad> _ref = "xxx" referirse a otro Bean objeto
b, inyección de constructor
usando <constructor-arg>
Atributo de ubicación: tipo de nombre de índice
atributo de asignación simple: valor
de propiedad de valor complejo: REF
* /
 
 

Supongo que te gusta

Origin blog.csdn.net/a1_HelloWord/article/details/80900178
Recomendado
Clasificación