jugar con marco de primavera

1. Tecnología de desarrollo web

Desde la perspectiva del aprendizaje, cuanto más profunda sea la comprensión de los problemas técnicos, mejor, y cuanto menos información protegida o encapsulada, mejor. Desde la perspectiva de la implementación de ingeniería, es necesario usar marcos y herramientas listos para usar de la manera más eficiente posible: esta es la diferencia entre "aprendizaje" e "implementación de ingeniería", pero estas dos cosas no son contradictorias. , mejor seremos en la implementación de ingeniería El uso de marcos y herramientas es más eficiente cuando

En segundo lugar, el marco de Spring

(1) Sitio web oficial de Primavera

URL: https://spring.io

(2) Ventajas del marco Spring

1. Spring hace que Java sea productivo.
2. Spring hace que Java sea reactivo.
3. Spring hace que Java esté listo para la nube.
4. Spring simplifica Java.
5. Spring hace que Java sea moderno.

3. Demostración de contenedor de resorte

(1) Crear un proyecto Maven

Cree un proyecto de Maven: SpringDemo, establezca la ubicación del proyecto y el ID de grupo
inserte la descripción de la imagen aquí
y haga clic en el botón [Finalizar]
inserte la descripción de la imagen aquí
para modificar la configuración de Maven del proyecto.
inserte la descripción de la imagen aquí

(2) Agregar dependencia de Spring

Encuentre el marco Spring en el repositorio de Maven (https://mvnrepository.com)
inserte la descripción de la imagen aquí

Agregue a los elementos del archivo pom.xml
inserte la descripción de la imagen aquí
y agregue otras dependencias de la misma manera

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.py.spring</groupId>
    <artifactId>SpringDemo1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--Spring核心-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!--Spring实体-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!--Spring容器-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!--Spring Web-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!--Spring MVC-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!--Spring测试-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Abra la ventana de Maven, haga clic en el botón Actualizar y comience a descargar las dependencias.
inserte la descripción de la imagen aquí

(3) Crear una clase de tarea para matar dragones

Cree el paquete net.py.spring.day01 y luego cree la clase SlayDragonQuest en el paquete.
inserte la descripción de la imagen aquí

package net.py.spring.day01;

public class SlayDragonQuest {

    public static void main(String[] args) {
        System.out.println("Hello world!");
    }

    public void embark() {
        System.out.println("执行杀龙任务......");

    }
}

(4) Crea una clase de caballero valiente

Cree la clase BraveKnight en el paquete net.py.spring.day01
inserte la descripción de la imagen aquí

package net.py.spring.day01;

import com.sun.org.apache.regexp.internal.RE;

public class BraveKnight {
    private String name;
    //创建杀龙任务对象
    private SlayDragonQuest SlayDragonQuest;

    public String getName() {
    return name;

    }
    /*
    *设置杀龙任务
    *
    * @param slayDragonQuest
    *
     */
    public void setName(String name) {
    this.name = name;
}

    public void setSlayDragonQuest(SlayDragonQuest slayDragonQuest) {
        this.SlayDragonQuest = slayDragonQuest;

    }
    /*
     * 骑士执行任务
     */
    public void embarkOnQuest() {
        System.out.print("勇敢骑士[" + name + "]");
                SlayDragonQuest.embark();
    }
}

(5) Usa el método tradicional para que el valiente caballero complete la tarea de matar al dragón.

Cree el paquete net.py.spring.day01 en test/java y luego cree la clase TestBraveKnightOld en el paquete.
inserte la descripción de la imagen aquí

package net.py.spring.day01;
import org.junit.Test;
public class TestBraveKnightOld {
    @Test
    public void testBraveKnightOld() {
        //创建杀龙任务对象
        SlayDragonQuest slayDragonQuest = new SlayDragonQuest();
        //创建勇敢骑士对象
        BraveKnight braveKnight = new BraveKnight();
        //创建勇敢骑士属性
        braveKnight.setName("绿巨人");
        braveKnight.setSlayDragonQuest(slayDragonQuest);
        //调用勇敢骑士执行任务对象
        braveKnight.embarkOnQuest();


    }
}

Ejecute el método de prueba testBraveKnight()
inserte la descripción de la imagen aquí
para ver los resultados de la ejecución del programa
inserte la descripción de la imagen aquí

(6) Use el marco Spring para permitir que los valientes caballeros completen la tarea de matar dragones

1. Cree un archivo de propiedades de registro

Cree log4j.properties en el directorio de recursos
inserte la descripción de la imagen aquí

log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

2. Cree un archivo de configuración de Spring

Cree el directorio xmlconfig en recursos y luego cree spring-config.xml en él.
inserte la descripción de la imagen aquí
Vea el spring-config.xml configurado en la ventana de estructura del proyecto

inserte la descripción de la imagen aquí

3. Crear un Bean en el archivo de configuración de Spring

(1) Crear un frijol de tareas para matar dragones

<!--杀龙任务Bean-->
<bean id="slayDragonQuest" class="net.py.spring.day01.SlayDragonQuest"/>

(2) Crear frijol caballero valiente

<!--创建勇敢骑士Bean-->                                                 
<bean id="Hulk" class="net.pyi.spring.day01.BraveKnight"> 
    <property name="name" value="绿巨人"/>  <!-- Hulk.setName("绿巨人")-->                        
    <property name="slayDragonQuest" ref="slayDragonQuest"/>  <!--Hulk.setSlayDragonQuest(slayDragonQuest)-->  
</bean>                                                                                                                       

A través del archivo de configuración de Spring, se crean dos objetos Bean y existe una relación de dependencia entre ellos. El primer objeto Bean es el valor del atributo de tarea del segundo objeto Bean.
inserte la descripción de la imagen aquí

4. Crea una nueva clase de prueba de caballero valiente

Cree la clase de prueba TestBraveKnightNew en test/java/net.py.spring.day01
inserte la descripción de la imagen aquí

package net.py.spring.day01;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.BeansException;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class TestBraveKnightNew {
    private ClassPathXmlApplicationContext context; //基于类路径XML配置文件的应用容器

    @Before
    public void init() {

        context = new ClassPathXmlApplicationContext( "xmlconfig/spring-config.xml");

        System.out.println("Spring应用容器已创建");
    }

    @Test
    public void testBraveKnight() {
        //根据名称从应用容器获取勇敢骑士对象(配置文件里定义勇敢骑士Brean的id是“Hulk”)
        BraveKnight braveKnight = (BraveKnight) context.getBean("Hulk");
        braveKnight.embarkOnQuest();
        BraveKnight knight1 = (BraveKnight) context.getBean("knight1");
        knight1.embarkOnQuest();
        BraveKnight knight2 = (BraveKnight) context.getBean("knight2");
        knight2.embarkOnQuest();

    }
    @After //每次测试方法执行后都要执行的代码
    public void destroy() {

        context.close();
        //提示用户
        System.out.println("Spring应用容器已关闭");
    }

}

inserte la descripción de la imagen aquí

5. Crea dos frijoles valientes

Cree dos beans más basados ​​en la clase BraveKnight, con valores de id de caballero1 y caballero2.
inserte la descripción de la imagen aquí

6. Modificar la nueva clase de prueba de caballero valiente

Obtenga los dos Brave Knight Beans recién creados, llame al método de ejecución
inserte la descripción de la imagen aquí
para ejecutar el método de prueba testBraveKnight() y vea los resultados
inserte la descripción de la imagen aquí

(7) Inyectar valores de propiedad mediante inyección de constructor

1. Crear una clase de tarea de rescate

Cree la clase RescueDamselQuest en el paquete net.py.spring.day01
inserte la descripción de la imagen aquí

package net.py.spring.day01;

public class RescueDamselQuest {
    public void embark() {
        System.out.println("执行救美任务!!!!");
    }
}

2. Crea la clase Caballero de la Salvación

Cree la clase DamselRescuingKnight en el paquete net.py.spring.day01
inserte la descripción de la imagen aquí

package net.py.spring.day01;


public class RescueDamselKnight {
    private String name;
    private  RescueDamselQuest rescueDamselQuest;

    public RescueDamselKnight(String name, RescueDamselQuest rescueDamselQuest) {
        this.name = name;
        this.rescueDamselQuest = rescueDamselQuest;
    }

    public void embarkOnQuest() {
        System.out.print("救美骑士[" + name + ']');
        rescueDamselQuest.embark();
    }
}

3. Configurar el Caballero Bean of Salvation

Cree el Salvation Knight Bean en el archivo de configuración de Spring
inserte la descripción de la imagen aquí

4. Cree la antigua clase de prueba Salvation Knight

Cree la clase TestRescueDamselKnightOld en el paquete test/java/net.py.spring.day01
inserte la descripción de la imagen aquí

package net.py.spring.day01;

import org.junit.Test;

public class TestRescueDamselKnightOld {
    @Test
    public void TestRescueDamselKnight() {
        RescueDamselQuest rescueDamselQuest = new RescueDamselQuest();
        RescueDamselKnight rescueDamselKnight = new RescueDamselKnight("格拉海德",rescueDamselQuest);

        rescueDamselKnight.embarkOnQuest();
    }
}

Ejecute el método de prueba testRescueDamselKnight() para ver los resultados

inserte la descripción de la imagen aquí

5. Cree una nueva clase de prueba de Salvation Knight

Cree la clase TestRescueDamselKnightNew en el paquete test/java/net.py.spring.day01
inserte la descripción de la imagen aquí

package net.py.spring.day01;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestRescueDamselKnightNew {
    private ClassPathXmlApplicationContext context; //基于类路径XML配置文件的应用容器

    @Before
    public void init() {

        context = new ClassPathXmlApplicationContext( "xmlconfig/spring-config.xml");

        System.out.println("Spring应用容器已创建");
    }
    @Test
    public void testRescueDamselKnight() {
        RescueDamselKnight rescueDamselKnight = (RescueDamselKnight) context.getBean("Galahad");
        rescueDamselKnight.embarkOnQuest();

        }

        @After //每次测试方法执行后都要执行的代码
        public void destroy() {

            context.close();
            //提示用户
            System.out.println("Spring应用容器已关闭");

        }

}

Ejecute el método de prueba testRescueDamselKnight() para ver el efecto
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/py20010218/article/details/125428738
Recomendado
Clasificación