Spring框架学习笔记01 :采用Spring配置文件管理Bean

Spring 框架
概述:
.Spring官网:https://spring.io/projects/spring-framework
在这里插入图片描述
在这里插入图片描述
利用Spring容器管理Bean
采用Spring配置文件管理Bean
利用注解精简Spring配置文件
利用注解配置类取代Spring配置文件
利用Java配置类管理Bean
二、入门案例演示
(一)创建Maven项目【SpringDemo2021】
在这里插入图片描述
在这里插入图片描述
(二)在pom.xml文件里添加依赖,第一次下载架包时,时间稍稍久一点。

<?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.tjl.spring</groupId>
    <artifactId>SpringDemo2021</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <!-- spring.version -->
        <spring.version>5.3.4</spring.version>
    </properties>

    <dependencies>
        <!--Spring核心-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring Bean-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring容器-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring测试-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

(三)创建杀龙任务类 - SlayDragonQuest
*在main/java里创建net.tjl.spring.lesson01包,然后在里面创建SlayDragonQuest类
在这里插入图片描述

package net.tjl.spring.lesson01;

/**
 * 功能:杀龙任务类
 * 作者:谭金兰
 * 日期:2021年03月15日
 */

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

    }
}
//国际消费者权益日:Internqtional Consumer Rights Day

(四)创建勇敢骑士类 - BraveKnight
在net.tjl.spring.lesson01包里创建BraveKnight类
在这里插入图片描述
在这里插入图片描述

package net.tjl.spring.lesson01;
        /**
        * 功能:勇敢骑士类
        * 作者:谭金兰
        * 日期:2021年03月15日
        */

        public class BraveKnight {
    
    
            private SlayDragonQuest slayDragonQuest;

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

            public void embarkOnQuest() {
    
    
                slayDragonQuest.embark();
            }
        }

(五)采用传统方式让勇敢骑士完成杀龙任务
*在test/java里创建net.tjl.spring.lesson01包,然后在里面创建TestBraveKnightOld类
在这里插入图片描述
在这里插入图片描述
运行测试方法testBraveKnight(),查看结果

在这里插入图片描述
(六)采用Spring框架让勇敢骑士完成杀龙任务
1、在resources目录里创建log4j.properties
在这里插入图片描述
在这里插入图片描述
2、创建Spring配置文件spring-config.xml
在这里插入图片描述
在这里插入图片描述
在项目结构窗口里查看配置好的spring-config.xml
在这里插入图片描述
3、在Spring配置文件里创建Bean
(1)创建杀龙任务Bean

<bean id="slayDragonQuest" class="net.tjl.spring.lesson01.SlayDragonQuest"/>

(2)创建勇敢骑士Bean

 <bean id="Mike" class="net.tjl.spring.lesson01.BraveKnight">
        <property name="slayDragonQuest" ref="slayDragonQuest"/>
    </bean>

4、创建测试类 - TestBraveKnightNew
在test/java/net.tjl.spring.lesson01里创建测试类TestBraveKnightNew
在这里插入图片描述

package net.tji.spring.lesson01;

import net.tjl.spring.lesson01.BraveKnight;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 功能:采用Spring容器测试勇敢骑士类
 * 作者:谭金兰
 * 日期:2021年03月15日
 */
public class TestBraveKnightNew {
    
    
    private ClassPathXmlApplicationContext context;

    @Before
    public void init() {
    
    
        // 基于Spring配置文件创建应用容器
        context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");
    }

    @Test
    public void testBraveKnight() {
    
    
        // 根据名称从应用容器中获取勇敢骑士对象
        BraveKnight braveKnight = (BraveKnight) context.getBean("Mike");
        // 勇敢骑士执行任务
        braveKnight.embarkOnQuest();
    }

    @After
    public void destroy() {
    
    
        // 关闭应用容器
        context.close();
    }
}

运行测试方法,查看结果
在这里插入图片描述
5、在Spring配置文件里再创建两个勇敢骑士Bean

 <bean id="Mike1" class="net.tjl.spring.lesson01.BraveKnight">
        <property name="slayDragonQuest" ref="slayDragonQuest"/>
    </bean>
    <bean id="Mike2" class="net.tjl.spring.lesson01.BraveKnight">
        <property name="slayDragonQuest" ref="slayDragonQuest"/>
    </bean>

6、修改测试类 - TestBraveKnightNew
在这里插入图片描述
(七)采用构造函数注入方式给Bean注入属性
1、创建救美任务类 - RescueDamselQuest
在net.tjl.spring.lesson01包里创建RescueDamselQuest类
在这里插入图片描述
在这里插入图片描述
2、创建救美之骑士类 - DamselRescuingKnight
在这里插入图片描述
在这里插入图片描述
3、在Spring配置文件里创建救美骑士Bean

<bean id="rescueDamselQuest" class="net.tjl.spring.lesson01.RescueDamselQuest"/>
    <bean id="damselRescuingKnight" class="net.tjl.spring.lesson01.DamselRescuingKnight">
        <constructor-arg ref="rescueDamselQuest"/>
    </bean>
   

4、创建测试类TestDamselRescuingKnightOld
在这里插入图片描述
在这里插入图片描述

运行测试方法,查看结果
在这里插入图片描述
5、创建测试类TestDamselRescuingKnightNew
在这里插入图片描述

package net.tji.spring.lesson01;

import net.tjl.spring.lesson01.DamselRescuingKnight;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 功能:采用Spring容器测试拯救少女骑士类
 * 作者:谭金兰
 * 日期:2021年03月15日
 */
public class TestDamselRescuingKnightNew {
    
    
    private ClassPathXmlApplicationContext context;

    @Before
    public void init() {
    
    
        // 基于Spring配置创建应用容器
        context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");
    }

    @Test
    public void testDamselRescuingKnight() {
    
    
        // 根据名称从应用容器里获取拯救少女骑士对象
        DamselRescuingKnight damselRescuingKnight = (DamselRescuingKnight) context.getBean("damselRescuingKnight");
        // 救美骑士执行任务
        damselRescuingKnight.embarkOnQuest();
    }

    @After
    public void destroy() {
    
    
        // 关闭应用容器
        context.close();
    }
}

运行测试方法,查看效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/triet/article/details/114818193