Spring Framework
breve introducción
Spring Framework se debe a la complejidad del desarrollo de software y la creación de
Objetivo: Para hacer frente a la complejidad del desarrollo de aplicaciones empresariales
Función: en lugar de utilizar la básica JavaBean EJB, y ofrece más aplicaciones empresariales
Rango: Cualquier aplicación Java
ventajas:
marco de código abierto (contenedor)
La primavera es un peso ligero marco, no invasiva
Inversión de Control (COI) y la sección de orientación (AOP) del bastidor de contenedor
Soporta el procesamiento de transacciones, el apoyo al marco de integración
sitio web oficial: https: //spring.io/
GitHub: https: //github.com/spring-projects/spring-framework
Maven
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
primavera siete módulos
La teoría del COI
IoC nombre completo Inversion of Control
, es decir, el contenedor IoC "Inversión de Control", uno de los núcleos de la primavera, y obtener una descripción del objeto específico (xml o anotación) a través de una tercera parte, el control de inversión de la primavera se implementa implementación es el DI ( Dependency Injection
), es decir, la inyección de dependencia.
- ¿Quién controla que : Después de que el modelo tradicional de desarrollo, que son el objeto de una nueva forma directa para crear un objeto, lo que significa que se inclina en su propio control directo, pero con el contenedor COI, junto al contenedor IoC a control. Así que "¿Quién controla quién" es, por supuesto objeto COI control contenedor.
- ¿Qué controles : objeto de control.
- ¿Por qué se invierte : hay COI cuando dependen de la iniciativa de crear el objeto en su propio objeto, que es hacia adelante. Pero después con la COI, inyecta directamente dependientes objetos creados por el contenedor IoC después de ser inyectado en el objeto, los objetos dependientes originales entrar en la aceptación pasiva de la iniciativa, que se invierte.
- Lo que invierte : la adquisición depende del objeto invierte.
COI crear objetos
Crear objetos de XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="he" class="com.youzi.pojo.Hello">
<property name="Str" value="Hello Spring!"/>
</bean>
</beans>
public class Hello {
private String Str;
public Hello(String str) {
Str = str;
}
public Hello() {
}
public String getStr() {
return Str;
}
public void setStr(String str) {
Str = str;
}
}
...
@Test
public void test() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Object he = context.getBean("he");
System.out.println(he);
}
Se refirió a la forma en que la asignación de otros objetos:
<bean id="userservice" class="com.youzi.service.UserServiceImpl">
<property name="user" ref="user"/>
</bean>
No hay parámetros de inicialización directamente
<bean id="user" class="com.youzi.dao.UserImpl"/>
Por encima de forma y llama al constructor con ninguna clase argumentos correspondiente al organismo, es decir, se requiere parámetros de inicialización o objeto debe tener un setter correspondiente, se pueden utilizar parámetros de configuración si hay que ser invocado <constructor-arg>
por el tipo, el estándar, el nombre del parámetro, la referencia pasar esto de varias maneras ginseng
Utilice el constructor
public Users(Hello hello, String num) {
this.hello = hello;
this.num = num;
}
<bean id="users" class="com.youzi.pojo.Users">
<!--<constructor-arg type="java.lang.String" value="1"/>-->
<!--<constructor-arg index="1" value="2"/>-->
<constructor-arg name="num" value="3"/>
<constructor-arg ref="he"/>
</bean>
configuración básica primavera
name
creados)
<bean id="he" class="com.youzi.pojo.Hello" name="hello3,hello4">
<property name="Str" value="Hello Spring!"/>
</bean>
<alias name="he" alias="hello1"/>
<alias name="he" alias="hello2"/>
frijol objetos Singleton por defecto creado por
scope="prototype"
la modificación, tales hello3, hello4 que los dos objetos diferentes
Los anteriores son sólo la configuración básica, hay muchos detalles que deben configurarse después de un nuevo estudio de cada uno dentro de la configuración