网站每年都要备案吗,天津网站优化怎么样,做网店运营新手入门教程,宣传类的网站有哪些文章目录一、学习目标二、打开01的项目三、利用组件注解符精简spring配置文件#xff08;一#xff09;创建新包#xff0c;复制四个类#xff08;二#xff09;修改杀龙任务类#xff08;三#xff09;修改救美任务类#xff08;四#xff09;修改勇敢骑士类#xf…
文章目录一、学习目标二、打开01的项目三、利用组件注解符精简spring配置文件一创建新包复制四个类二修改杀龙任务类三修改救美任务类四修改勇敢骑士类五修改救美骑士类六创建spring配置文件七创建测试类四、程序优化-面向接口一创建任务接口二创建骑士接口三修改杀龙任务类四修改救美任务类五修改勇敢骑士类六修改救美骑士类七修改测试类八运行测试类一、学习目标
1.掌握采用组件注解符精简Spring配置文件 2.理解面向接口优化程序结构的思想
二、打开01的项目 三、利用组件注解符精简spring配置文件
一创建新包复制四个类 二修改杀龙任务类
杀龙任务类 - SlayDragonQuest 给Java类添加组件注解符Component意味着要交给Spring容器管理如果没有设置参数那么组件采用默认名称就是类名首字母小写 - slayDragonQuest
package net.huawei.spring.day02;import org.springframework.stereotype.Component;/*** 功能杀龙任务类* 作者华卫* 日期2023年02月13日*/
Component
public class SlayDragonQuest {public void embark() {System.out.println(执行杀龙任务……);}
}
三修改救美任务类
救美任务类 - RescueDamselQuest
package net.huawei.spring.day02;import org.springframework.stereotype.Component;/*** 功能救美任务类* 作者华卫* 日期2023年02月20日*/
Component
public class RescueDamselQuest {public void embark() {System.out.println(执行救美任务……);}
}
四修改勇敢骑士类
勇敢骑士类 - BraveKnight
package net.huawei.spring.day02;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** 功能勇敢骑士类* 作者华卫* 日期2023年02月20日*/
Component(RobinHood)
public class BraveKnight {Value(罗宾汉) // 值注解符private String name;Autowired // 自动装配注解符private SlayDragonQuest slayDragonQuest;/*** 勇敢骑士执行任务*/public void embarkOnQuest() {System.out.print(勇敢骑士[ name ]); // 骑士留名slayDragonQuest.embark(); // 执行杀龙任务}
}
五修改救美骑士类
救美骑士类 - DamselRescuingKnight添加组件注解符自动配置两个属性
package net.huawei.spring.day02;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** 功能救美骑士类* 作者华卫* 日期2023年02月20日*/
Component
public class RescueDamselKnight {Value(格拉海德) // 值注解符private String name;Autowired // 自动装配注解符private RescueDamselQuest rescueDamselQuest;public void embarkOnQuest() {System.out.print(救美骑士[ name ]);rescueDamselQuest.embark();}
}
六创建spring配置文件
在resources目录创建xml_annotation子目录然后在里面创建Spring配置文件 - spring-config.xml 组件扫描扫描指定包下添加了注解符的类Component、Service、Repository、Mapper、Controller将其生成Bean对象
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd!--组件扫描扫描指定包下添加了注解符的类或接口将其生成Bean对象--context:component-scan base-packagenet.huawei.spring.day02 /
/beans
七创建测试类
在test/java里创建net.huawei.spring.day02包在包里创建TestKnight类
package net.huawei.spring.day02;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 功能测试骑士类* 作者华卫* 日期2023年02月20日*/
public class TestKnight {private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器Beforepublic void init() {// 基于Spring配置文件创建应用容器context new ClassPathXmlApplicationContext(xml_annotation/spring-config.xml);}Testpublic void testKnight() {// 根据名称从应用容器里获取勇敢骑士对象BraveKnight knight1 (BraveKnight) context.getBean(RobinHood);// 勇敢骑士执行任务knight1.embarkOnQuest();// 根据名称从应用容器里获取救美骑士对象RescueDamselKnight knight2 (RescueDamselKnight) context.getBean(rescueDamselKnight);// 救美骑士执行任务knight2.embarkOnQuest();}Afterpublic void destroy() {// 关闭应用容器context.close();}
}
四、程序优化-面向接口
Spring框架可以方便地管理Bean及其相互依赖。为了模块之间实现松耦合一般采用面向接口的方式。多种骑士多种任务可以任意搭配。为了实现这个效果我们应该抽象出两个接口骑士接口Knight和任务接口Quest。骑士接口有两个实现类BraveKnight和DamselRescuingKnight任务接口有两个实现类SlayDragonQuest和RescueDamselQuest。
一创建任务接口
package net.huawei.spring.day02;/*** 功能任务接口* 作者华卫* 日期2023年02月20日*/
public interface Quest {void embark();
}
二创建骑士接口
package net.huawei.spring.day02;/*** 功能骑士接口* 作者华卫* 日期2023年02月20日*/
public interface Knight {void embarkOnQuest();
}
三修改杀龙任务类 四修改救美任务类 五修改勇敢骑士类 六修改救美骑士类 七修改测试类 八运行测试类