SSM框架笔记07:初探Spring——采用XML配置文件与注解方式

初探Spring——采用XML配置文件与注解方式

在上一讲的项目基础上继续。

1、将xmlconfig包里的两个骑士类和两个任务类拷贝到xml_annotation包

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第1张图片

2、修改SlayDragonQuest类

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第2张图片

业务Bean的配置可使用注解配置@Component(组件)、@Service(服务)、@Repository(仓库)、@Controller(控制器)。

3、修改RescueDamselQuest类

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第3张图片

4、修改BraveKnight类

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第4张图片

5、修改DamselResuingKnight类

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第5张图片

6、在resource目录里创建xml_annotation子目录,在里面创建Spring配置文件spring-config.xml

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第6张图片

扫描指定包下增加了注解符的类(@Component、@Service、@Repository、@Controller),将其生成Bean。

7、创建测试程序TestKnight类

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第7张图片

package net.hw.spring.ch1.xml_annotation;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by howard on 2017/2/24.
 */
public class TestKnight {
    public static void main(String[] args) {
        // 基于Spring配置文件创建应用容器
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("xml_annotation/spring-config.xml");
        // 根据名称从应用容器中获取勇敢骑士对象
        BraveKnight braveKnight = (BraveKnight) context.getBean("braveKnight");
        // 勇敢骑士执行任务
        braveKnight.embarkOnQuest();
        // 根据名称从应用容器中获取拯救少女之骑士对象
        DamselRescuingKnight damselRescuingKnight = (DamselRescuingKnight) context.getBean("damselRescuingKnight");
        // 拯救少女之骑士执行任务
        damselRescuingKnight.embarkOnQuest();
        // 关闭应用容器
        context.close();
    }
}
运行测试程序,结果如下所示:

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第8张图片

说明 :在类前加@Component注解符,生成的Bean采用默认名字,即类名第一个字母小写。如果不想采用默认名字,那么通过@Component注解的参数来指定,比如给BraveKnight类添加注解符@Component("mike")。

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第9张图片

此时,测试类TestKnight就要做相应修改:

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第10张图片

运行程序,结果如下:

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第11张图片




Spring框架可以方便管理Bean及其相互依赖。
实现松耦合,一般采用面向接口的方式。
多种骑士,多种任务,任意搭配。
抽象出骑士接口和任务接口。

1、定义Knight接口

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第12张图片

2、定义Quest接口

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第13张图片

3、修改SlayDragonQuest类,让它实现Quest接口

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第14张图片

4、修改RescueDamselQuest类,让它实现Quest接口
SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第15张图片
5、修改BraveKnight类,让它实现Knight接口

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第16张图片

注意,SlayDragonQuest类改成了Quest接口,这样就可以给该骑士自动装配任何任务(实现了Quest接口的Bean),增加了程序的灵活性。

6、修改DamselRescuingKnight类,让它实现Knight接口

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第17张图片

此时,运行程序,看看结果。

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第18张图片

任务:要求勇敢骑士去拯救少女,要求拯救少女之骑士去杀龙。

1、修改BraveKnight类,给他装配拯救少女任务。

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第19张图片

2、修改DamselRescuingKnight类,给他装配杀龙任务。

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第20张图片

3、运行测试程序TestKnight,看看结果。

SSM框架笔记07:初探Spring——采用XML配置文件与注解方式_第21张图片

下面把代码还原。还是勇敢骑士执行杀龙任务,拯救少女之骑士执行拯救少女任务。

你可能感兴趣的:(Java,Web框架)