Java エンタープライズ開発の学習ノート

1. 春

最初の週に、私は 2 つの小さなプロジェクトを作成しましたが、どちらも元の调用メソッドを使用していました容器。2
つのプロジェクト:<斩杀大龙与上路保卫战>
ファイルの場所のマップを使用しました。
ファイルの場所のマップ

1.1、スレイドラゴン

ブレイブナイト

package net.sherry.spring.day01;

public class BraveKnight {
    
    
    private String name; //骑士姓名
    private SlayDragonQuest slayDragonQuest; //杀龙任务


    public String getName() {
    
    
        return name;
    }

    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();// 执行任务
    }
}

ドラゴンクエストを倒す

package net.sherry.spring.day01;

public class SlayDragonQuest {
    
    
    public void embark(){
    
    
        System.out.println("Red team has slay the dragon");
    }
}

呼び出し方法はこちら

spring-config.xml
以下の 2 つのメソッドで使用される 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 http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--配置斩杀任务Bean-->
    <bean id="slayDragonQuest" class="net.sherry.spring.day01.SlayDragonQuest"/>
    <bean id="braveKnight" class="net.sherry.spring.day01.BraveKnight">
        <property name="name" value="姜承録"/>
        <property name="slayDragonQuest" ref="slayDragonQuest"/>
    </bean>
    <bean id="knight1" class="net.sherry.spring.day01.BraveKnight">
        <property name="name" value="Rookie"/>
        <property name="slayDragonQuest" ref="slayDragonQuest"/>
    </bean>
    <bean id="knight2" class="net.sherry.spring.day01.BraveKnight">
        <property name="name" value="JackeyLove"/>
        <property name="slayDragonQuest" ref="slayDragonQuest"/>
    </bean>

    <!--配置营救任务Bean-->
    <bean id="rescueDamselQuest" class="net.sherry.spring.day01.RescueDamselQuest"/>
    <!--配置营救Bean-->
    <bean id="rescueDamselKnight" class="net.sherry.spring.day01.RescuedamselKnight">
        <constructor-arg value="Ning" />
        <constructor-arg ref="rescueDamselQuest" />
    </bean>
</beans>

TestBraveKnightOld
これがオリジナルのメソッドです

package net.sherry.spring.day01;

import org.junit.Test;

public class TestBraveKnightOLd {
    
    
    @Test
    public void testBraveKnight(){
    
    
        // 创建一个斩杀对象
        SlayDragonQuest slayDragonQuest = new SlayDragonQuest();
        // 创建勇敢骑士对象
        BraveKnight braveKnight = new BraveKnight();
        //设置勇敢骑士属性
        braveKnight.setName("姜承録");
        braveKnight.setSlayDragonQuest(slayDragonQuest);
        //调用勇敢骑士执行任务方法
        braveKnight.embarkOnQuest();
    }
}

TestKnightNew は
コンテナ メソッドを使用します

package net.sherry.spring.day01;

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

/**
 * 功能:采用Spring容器测试勇敢骑士类
 * 作者:Sherry
 * 日期:2023年02月13日
 */
public class TestKnightNew {
    
    
    private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器(Bean工厂)

    @Before // 每次测试方法执行前都要执行的代码就放在此方法里
    public void init() {
    
    
        // 基于Spring配置文件创建应用容器
        context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");
        // 提示用户
        System.out.println("Spring应用容器已创建~");
    }

    @Test
    public void testBraveKnight() {
    
    
        try {
    
    
            // 根据名称从应用容器中获取勇敢骑士对象
            BraveKnight braveKnight = (BraveKnight) context.getBean("braveKnight");//BraveKnight
            // 勇敢骑士执行任务
            braveKnight.embarkOnQuest();
            BraveKnight knight1 = (BraveKnight) context.getBean("knight1");//BraveKnight
            // 勇敢骑士执行任务
            knight1.embarkOnQuest();
            BraveKnight knight2 = (BraveKnight) context.getBean("knight2");//BraveKnight
            // 勇敢骑士执行任务
            knight2.embarkOnQuest();
        }catch (Exception e){
    
    
            System.out.println("查无此人");
        }

    }

    @After // 每次测试方法执行后都要执行的代码就放在此方法里
    public void destroy() {
    
    
        // 关闭应用容器
        context.close();
        // 提示用户
        System.out.println("Spring应用容器已关闭~");
    }
}

1.2、レスキューダムゼルクエスト

トップ ロード ディフェンス
レスキューDamselKnight

package net.sherry.spring.day01;

/**
 * 功能:
 * 作者:Sherry
 * 日期:2023/2/15
 */
public class RescuedamselKnight {
    
    
    private String name; //英雄名
    private RescueDamselQuest rescueDamselQuest; // 救援任务

    /**
     * 有参构造方法
     *
     * @param name
     * @param rescueDamselQuest
     */

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

    public void embarkOnQuest(){
    
    
        System.out.print("上路保卫者["+ name +"]" );
        rescueDamselQuest.embark();
    }
}

レスキューダムゼルクエスト

package net.sherry.spring.day01;

/**
 * 功能:
 * 作者:Sherry
 * 日期:2023/2/15
 */
public class RescueDamselQuest {
    
    
    public void embark(){
    
    
        System.out.println("执行营救任务……");
    }
}

テストレスキュー乙女ナイト古い

package net.sherry.spring.day01;

import org.junit.Test;

/**
 * 功能:
 * 作者:Sherry
 * 日期:2023/2/15
 */
public class TestRescueDamselKnightOld {
    
    
    @Test
    public void testRescuedamselKnight(){
    
    
        // 创建营救任务
        RescueDamselQuest rescueDamselQuest = new RescueDamselQuest();
        // 创建英雄对象
        RescuedamselKnight rescuedamselKnight = new RescuedamselKnight("Ning", rescueDamselQuest);
        // 执行任务
        rescuedamselKnight.embarkOnQuest();
    }
}

テストレスキュー乙女ナイト新しい

package net.sherry.spring.day01;

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

/**
 * 功能:采用Spring容器测试营救任务
 * 作者:Sherry
 * 日期:2023/2/15
 */
public class TestRescueDamselKnightNew {
    
    
    private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器(Bean工厂)

    @Before // 每次测试方法执行前都要执行的代码就放在此方法里
    public void init() {
    
    
        // 基于Spring配置文件创建应用容器
        context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");
        // 提示用户
        System.out.println("Spring应用容器已创建~");
    }

    @Test
    public void testRescueDamselKnight() {
    
    
        RescuedamselKnight rescuedamselKnight = (RescuedamselKnight) context.getBean("rescueDamselKnight");
        rescuedamselKnight.embarkOnQuest();
    }

    @After // 每次测试方法执行后都要执行的代码就放在此方法里
    public void destroy() {
    
    
        // 关闭应用容器
        context.close();
        // 提示用户
        System.out.println("Spring应用容器已关闭~");
    }
}

1.3、インターフェースを使用してプログラムを実行する

ブレイブナイト

package net.sherry.spring.day02;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("姜承錄")
public class BraveKnight implements Knight{
    
    
    @Value("Ning")//值注解符
    private String name; //骑士姓名
    @Autowired //自动装配注解符
    private SlayDragonQuest slayDragonQuest; //杀龙任务

    @Override
    public void embarkOnQuest(){
    
    
        System.out.print("召唤师["+ name + "]");// 勇士流明
        slayDragonQuest.embark();// 执行任务
    }
}

レスキューダムセルナイト

package net.sherry.spring.day02;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 功能:
 * 作者:Sherry
 * 日期:2023/2/15
 */
@Component
public class RescuedamselKnight implements Knight{
    
    
    @Value("姜承録")
    private String name; //英雄名
    @Autowired
    private RescueDamselQuest rescueDamselQuest; // 救援任务

    @Override
    public void embarkOnQuest(){
    
    
        System.out.print("上路保卫者["+ name +"]" );
        rescueDamselQuest.embark();
    }
}

スレイドラゴンクエスト

package net.sherry.spring.day02;
import org.springframework.stereotype.Component;

@Component
public class SlayDragonQuest  implements Quest{
    
    
    @Override
    public void embark(){
    
    
        System.out.println("Red team has slay the dragon");
    }
}

レスクダメルズクエスト

package net.sherry.spring.day02;
import org.springframework.stereotype.Component;

/**
 * 功能:
 * 作者:Sherry
 * 日期:2023/2/15
 */
@Component
public class RescueDamselQuest implements Quest{
    
    
    @Override
    public void embark(){
    
    
        System.out.println("执行营救任务……");
    }
}

次に、2 つのインターフェイス クラスがあります。
Quest

package net.sherry.spring.day02;

/*
*  功能:任务接口
*  作者:Sherry
*  日期:2023年02月21日
*/
public interface Quest {
    
    
    void embark();
}

騎士

package net.sherry.spring.day02;

public interface Knight {
    
    
    void embarkOnQuest();
}

テストクラス:
TestKnight

package net.sherry.spring.day02;

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

/**
 * 功能:测试骑士类
 * 作者:Sherry
 * 日期:2023/2/21
 */
public class TestKnight {
    
    
    private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器(Bean工厂)

    @Before // 每次测试方法执行前都要执行的代码就放在此方法里
    public void init() {
    
    
        // 基于Spring配置文件创建应用容器
        context = new ClassPathXmlApplicationContext("xml_annotation/spring-config.xml");
    }
    @Test
    public void testKnight(){
    
    
        // 根据名称从应用容器里获取勇敢骑士对象
        Knight knight1 = (BraveKnight) context.getBean("姜承錄");
        // 勇敢骑士执行任务
        knight1.embarkOnQuest();
        // 根据名称从应用容器里获取勇敢骑士对象
        Knight knight2 = (RescuedamselKnight) context.getBean("rescuedamselKnight");
        // 勇敢骑士执行任务
        knight2.embarkOnQuest();

    }

    @After // 每次测试方法执行后都要执行的代码就放在此方法里
    public void destroy() {
    
    
        // 关闭应用容器
        context.close();
    }
}

テスト結果:
テストインターフェース
各人が 2 つのタスクを実行
ここに画像の説明を挿入ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_53547097/article/details/129045215