文章前言:
本次是第二次学习Spring框架的基础笔记,主要是学习关于组件与注解符方面的知识来配置文件项目,作为一个笔记,希望用于记录自己的一点一滴的成长记录。本次主要是讲解了当任务项目中有许多个类都需要创建一个Bean,如果单靠配置的话将会显得十分地臃肿,将影响美观,至此本次学习内容将通过对组件的学习来简化操作,涉及到的知识点有:1、配置 - configuration 2、注解 - annotation
文章目录
一、打开上一节课学习项目【SpringDemo2021】并创建lesson02学习包:
本次任务仍然是借助上一次的项目(勇敢骑士杀龙救美任务)进行完善与学习的,用时大概四个小时吧,途中遇到了许多问题,均是在博客园得到的解决,过程中学到了很多很多的课外知识
(1)打开项目并创建lesson02包:
(2)拷贝lesson01中的内容到lesson02中进行修改与学习:
(3)修改杀龙任务【SlayDragonQuest】添加注解符@Component
提示:@Component注解符与@Bean注解符存在着异同点,有很多地方不是很清楚,于是自己查了一下资料,发现二者都是为了定义Bean而存在的,只不过@Component可以自动完成对Bean的配置,用于自动检测和使用类路径扫描自动配置bean。注释类和bean之间存在隐式的一对一映射(即每个类一个bean)。本节课着重于对该注解符的学习。
(4)、修改拯救少女任务类 【RescueDamselQuest】:
(5)修改勇敢骑士类【 BraveKnight】
(6)修改拯救少女类【DamselRescuingKnight】
提示:此处已经删除了构造方法 ( public DamselRescuingKnight(){} ) ,@Resource 接口是一个更强大的接口,用于抽象对底层资源的访问 。
(7)创建Spring配置文件
- 在resources目录创建xml_annotation子目录,然后在里面创建Spring配置文件 - spring-config.xml
在配置的时候按照以下方式进行配置(由于该步骤的图片我不小心删了,于是借助同学的用了一下,反正步骤是一模一样的,影响不大)
- 组件扫描:
二、在Java测试文件中创建测试类TestKnight
查看测试类代码;
(2)查看运行结果:
三、关于如何自定义Bean名
在类前添加@Component注解符,生成的Bean采用默认名称,即类名首字母小写。如果不想采用默认名称,那么通过@Component注解符的参数来制定,比如给BraveKnight类添加注解符@Component(“自定义的Bean名字”)或者@Component(value = “自定义的Bean名字”):
(1)打开勇敢骑士类【BraveKnight】
此处以“Mike”作为新定义的自定义Bean名字
(2)修改测试方法testBraveKnight()
(3)运行测试方法testBraveKnight(),查看结果
四、程序接口优化(运用接口的知识):
Spring框架可以方便地管理Bean及其相互依赖。为了实现松耦合,一般采用面向接口的方式。多种骑士,多种任务,任意搭配。为了实现这个效果,我们应该抽象出两个接口:骑士接口(Knight)和任务接口(Quest)。骑士接口有两个实现类:BraveKnight和DamselRescuingKnight;任务接口有两个实现类:SlayDragonQuest和RescueDamselQuest。
(1)创建骑士与任务接口:
(2)查看代码:
骑士类代码:
任务类代码:
(2)修改杀龙任务类 - SlayDragonQuest:
(3)修改拯救少女任务修改拯救少女骑士类 - DamselRescuingKnight
(3)运行测试类 - TestKnight查看结果:
总结:
本次任务难度比较大,涉及到的内容比较多,尤其是在最后对接口的知识进行了一次复习与回顾才慢慢理解到的,发现了自己在基础知识上的一些漏洞需要补漏。在接下来的学习过程中会慢慢进行巩固与对旧知识的复习,以及对新知识的复习,否则后期根本学不走。