1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 利用组件注解符精简Spring配置文件

利用组件注解符精简Spring配置文件

时间:2020-09-18 00:27:50

相关推荐

利用组件注解符精简Spring配置文件

文章目录

一、创建新包二、复制四个类三、修改杀龙任务类四、修改救美任务类五、修改勇敢骑士类六、修改救美骑士类七、创建Spring配置文件八、创建测试类九、程序优化 - 面向接口1、创建任务接口2、创建骑士接口3、修改杀龙任务类4、修改救美任务类5、修改勇敢骑士类6、修改救美骑士类7、修改测试类

一、创建新包

创建net.xxr.spring.day02

二、复制四个类

三、修改杀龙任务类

package net.xxr.spring.day02;import org.ponent;/*** 功能:杀龙任务类*/@Componentpublic class SlayDragonQuest {public void embark() {System.out.println("执行杀龙任务……");}}

四、修改救美任务类

package net.xxr.spring.day02;import org.ponent;/*** 功能:救美任务类*/@Componentpublic class RescueDamselQuest {public void embark() {System.out.println("执行救美任务……");}}

五、修改勇敢骑士类

package net.xxr.spring.day02;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.ponent;/*** 功能:勇敢骑士类*/@Component("RobinHood")public class BraveKnight {@Value("罗宾汉") // 值注解符private String name;@Autowired // 自动装配注解符private SlayDragonQuest slayDragonQuest;/*** 勇敢骑士执行任务*/public void embarkOnQuest() {System.out.print("勇敢骑士[" + name + "]"); // 骑士留名slayDragonQuest.embark(); // 执行杀龙任务}}

六、修改救美骑士类

package net.xxr.spring.day02;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.ponent;/*** 功能:救美骑士类*/@Componentpublic 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

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"><!--组件扫描,扫描指定包下添加了注解符的类或接口,将其生成Bean对象--><context:component-scan base-package="net.xxr.spring.day02" /></beans>

八、创建测试类

test/java里创建net.xxr.spring.day02包,在包里创建TestKnight

package net.xxr.spring.day02;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 功能:测试骑士类*/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();}}

运行方法,查看结果

九、程序优化 - 面向接口

1、创建任务接口

任务接口 -Quest

package net.xxr.spring.day02;/*** 功能:任务接口*/public interface Quest {void embark();}

2、创建骑士接口

package net.xxr.spring.day02;/*** 功能:骑士接口*/public interface Knight {void embarkOnQuest();}

3、修改杀龙任务类

杀龙任务类 -SlayDragonQuest,实现任务接口

package net.xxr.spring.day02;import org.ponent;/*** 功能:杀龙任务类*/@Componentpublic class SlayDragonQuest implements Quest{@Overridepublic void embark() {System.out.println("执行杀龙任务……");}}

4、修改救美任务类

救美任务类 -RescueDamselQuest,实现任务接口

package net.xxr.spring.day02;import org.ponent;/*** 功能:救美任务类*/@Componentpublic class RescueDamselQuest implements Quest{@Overridepublic void embark() {System.out.println("执行救美任务……");}}

5、修改勇敢骑士类

勇敢骑士类 -BraveKnight,实现骑士接口

package net.xxr.spring.day02;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.ponent;/*** 功能:勇敢骑士类*/@Component("RobinHood")public class BraveKnight implements Knight{@Value("罗宾汉") // 值注解符private String name;@Autowired // 自动装配注解符private Quest slayDragonQuest;/*** 勇敢骑士执行任务*/public void embarkOnQuest() {System.out.print("勇敢骑士[" + name + "]"); // 骑士留名slayDragonQuest.embark(); // 执行杀龙任务}}

6、修改救美骑士类

救美骑士类 -DamselRescuingKnight,实现骑士接口

package net.xxr.spring.day02;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.ponent;/*** 功能:救美骑士类*/@Componentpublic class RescueDamselKnight implements Knight{@Value("格拉海德") // 值注解符private String name;@Autowired // 自动装配注解符private Quest rescueDamselQuest;public void embarkOnQuest() {System.out.print("救美骑士[" + name + "]");rescueDamselQuest.embark();}}

7、修改测试类

测试类 -TestKnight

package net.xxr.spring.day02;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 功能:测试骑士类*/public class TestKnight {private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器@Beforepublic void init() {// 基于Spring配置文件创建应用容器context = new ClassPathXmlApplicationContext("xml_annotation/spring-config.xml");}@Testpublic void testKnight() {// 根据名称从应用容器里获取勇敢骑士对象Knight knight1 = (BraveKnight) context.getBean("RobinHood");// 勇敢骑士执行任务knight1.embarkOnQuest();// 根据名称从应用容器里获取救美骑士对象Knight knight2 = (RescueDamselKnight) context.getBean("rescueDamselKnight");// 救美骑士执行任务knight2.embarkOnQuest();}@Afterpublic void destroy() {// 关闭应用容器context.close();}}

运行测试结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。