该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/iK3aM】

文章目录

  • 1. 创建Maven项目
  • 2. 添加Spring依赖
  • 3. 创建杀龙任务
  • 4. 创建勇士类
  • 5. 采用传统的方式
  • 6. 采用Spring容器让勇敢骑士完成杀龙任务
    • 6.1 创建日志属性文件
    • 6.2 创建Spring配置文件
    • 6.3 在Spring配置文件里创建Bean
    • 6.4 创建新勇敢骑士测试类
    • 6.5 创建两个勇敢骑士Bean
    • 6.6 修改新勇敢骑士测试类
  • 7. 采用构造方法注入方式注入属性值
    • 7.1 创建救美任务类
    • 7.2 创建救美骑士类
    • 7.3 配置救美骑士Bean
    • 7.4 创建旧救美骑士测试类
    • 7.5 创建新救美骑士测试类

1. 创建Maven项目

  • 创建Maven项目 - SpringDemo
  • 修改项目的Maven配置

2. 添加Spring依赖

  • 在Maven仓库里查找Spring框架(https://mvnrepository.com)


  • 添加到pom.xml文件的<dependencies>元素里,并添加其他依赖
<dependencies><!--Spring核心--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.25</version></dependency><!--Spring实体--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.3.25</version></dependency><!--Spring容器--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.25</version></dependency><!--Spring Web--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.25</version></dependency><!--Spring MVC--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.25</version></dependency><!--Spring测试--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.25</version></dependency><!--单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies>
  • 打开maven窗口检查是否下载完成

3. 创建杀龙任务

package cn.kox.spring.week01;public class SlayDragonQuest {public void embark() {System.out.println("执行傻龙任务...");}
}

4. 创建勇士类

package cn.kox.spring.week01;public class BraveKnight {private String name;private SlayDragonQuest slayDragonQuest;public BraveKnight(String 小明) {}public BraveKnight(String name, SlayDragonQuest slayDragonQuest) {this.name = name;this.slayDragonQuest = slayDragonQuest;}public String getName() {return name;}public void setName(String name) {this.name = name;}public SlayDragonQuest getSlayDragonQuest() {return slayDragonQuest;}public void setSlayDragonQuest(SlayDragonQuest slayDragonQuest) {this.slayDragonQuest = slayDragonQuest;}public void embarkOnQuest() {System.out.printf("勇士骑士[%s]", name);slayDragonQuest.embark();}
}

5. 采用传统的方式

  • 创建TestBraveKnightOld
package cn.kox.spring.week01;import org.junit.Test;public class TestBraveKnightOld {@Testpublic void testBraveKnightOld() {SlayDragonQuest sdq1 = new SlayDragonQuest();BraveKnight bk1 = new BraveKnight("小明", sdq1);bk1.embarkOnQuest();}
}
  • 运行程序,查看结果

6. 采用Spring容器让勇敢骑士完成杀龙任务

6.1 创建日志属性文件

log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

6.2 创建Spring配置文件

<?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">
</beans>

6.3 在Spring配置文件里创建Bean

(1)创建杀龙任务Bean

    <bean id="slayDragonQuest" class="cn.kox.spring.week01.SlayDragonQuest"/>

(2)创建勇敢骑士Bean

    <bean id="braveKnight" class="cn.kox.spring.week01.BraveKnight"><constructor-arg value=""/><property name="name" value="罗斌含"/><property name="slayDragonQuest" ref="slayDragonQuest"/></bean>

6.4 创建新勇敢骑士测试类

  • 创建TestBraveKnightNew测试类
package cn.kox.spring.week01;import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestBraveKnightNew {private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器(Bean工厂)@Before // 每次测试方法执行前都要执行的代码就放在此方法里public void init() {// 基于Spring配置文件创建应用容器context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");// 提示用户System.out.println("Spring应用容器已创建~");}@Testpublic void testBraveKnight() {// 根据名称从应用容器中获取勇敢骑士对象BraveKnight braveKnight = (BraveKnight) context.getBean("braveKnight");// 勇敢骑士执行任务braveKnight.embarkOnQuest();}@After // 每次测试方法执行后都要执行的代码就放在此方法里public void destroy() {// 关闭应用容器context.close();// 提示用户System.out.println("Spring应用容器已关闭~");}
}
  • 运行结果

6.5 创建两个勇敢骑士Bean

    <bean id="knight1" class="cn.kox.spring.week01.BraveKnight"><constructor-arg value=""/><property name="name" value="高问"/><property name="slayDragonQuest" ref="slayDragonQuest"/></bean><bean id="knight2" class="cn.kox.spring.week01.BraveKnight"><constructor-arg value=""/><property name="name" value="加雷斯"/><property name="slayDragonQuest" ref="slayDragonQuest"/></bean>

6.6 修改新勇敢骑士测试类

        BraveKnight knight1 = (BraveKnight) context.getBean("knight1");knight1.embarkOnQuest();BraveKnight knight2 = (BraveKnight) context.getBean("knight2");knight2.embarkOnQuest();
  • 运行结果

7. 采用构造方法注入方式注入属性值

7.1 创建救美任务类

  • 创建RescueDamselQuest
package cn.kox.spring.week01;public class RescueDamselQuest {public void embark() {System.out.println("执行就美任务...");}
}

7.2 创建救美骑士类

  • 创建DamselRescuingKnight
package cn.kox.spring.week01;public class DamselRescuingKnight {private String name;private RescueDamselQuest rescueDamselQuest;public DamselRescuingKnight() {}public DamselRescuingKnight(String name, RescueDamselQuest rescueDamselQuest) {this.name = name;this.rescueDamselQuest = rescueDamselQuest;}public String getName() {return name;}public void setName(String name) {this.name = name;}public RescueDamselQuest getRescueDamselQuest() {return rescueDamselQuest;}public void setRescueDamselQuest(RescueDamselQuest rescueDamselQuest) {this.rescueDamselQuest = rescueDamselQuest;}public void embarkOnQuest() {System.out.printf("救美骑士[%s]", name);rescueDamselQuest.embark();}
}

7.3 配置救美骑士Bean

  • 在Spring配置文件里创建救美骑士Bean
    <!--配置救美任务Bean--><bean id="rescueDamselQuest" class="cn.kox.spring.week01.RescueDamselQuest"/><!--配置救美骑士Bean--><bean id="damselRescuingKnight" class="cn.kox.spring.week01.BraveKnight"><constructor-arg value="格拉海德"/><constructor-arg ref="rescueDamselQuest"/></bean>

7.4 创建旧救美骑士测试类

  • 创建TestRescueDamselKnightOld
package cn.kox.spring.week01;import org.junit.Test;public class TestRescueDamselKnightOld {@Testpublic void testRescueDamselKnight() {// 创建救美任务对象RescueDamselQuest rescueDamselQuest = new RescueDamselQuest();// 创建救美骑士对象RescueDamselKnight rescueDamselKnight = new RescueDamselKnight("格拉海德", rescueDamselQuest);// 救美骑士执行任务rescueDamselKnight.embarkOnQuest();}
}
  • 运行结果:

7.5 创建新救美骑士测试类

  • 创建TestRescueDamselKnightNew
package cn.kox.spring.week01;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestRescueDamselKnightNew {private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器@Before // 每次测试方法执行前都要执行的代码public void init() {// 基于Spring配置文件创建应用容器context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");// 提示用户System.out.println("Spring应用容器已创建~");}@Testpublic void testRescueDamselKnight() {// 根据名称从应用容器里获取救美骑士对象RescueDamselKnight rescueDamselKnight = (RescueDamselKnight) context.getBean("damselRescuingKnight");// 救美骑士执行任务rescueDamselKnight.embarkOnQuest();}@After // 每次测试方法执行后都要执行的代码public void destroy() {// 关闭应用容器context.close();// 提示用户System.out.println("Spring应用容器已关闭~");}
}
  • 运行结果

Java企业开发学习笔记(1.1)采用Spring配置文件管理Bean相关推荐

  1. Java企业开发学习笔记(1.5.1)采用配置方式使用AOP

    该文章主要为完成实训任务,详细实现过程及结果见[http://t.csdn.cn/FBkpc] 文章目录 一.采用配置方式使用AOP 1.1 创建所需子包 1.2 创建杀龙任务类 1.3 创建勇敢骑士 ...

  2. Java企业开发学习笔记(1.2)利用组件注解符精简Spring配置文件

    该文章主要为完成实训任务,详细实现过程及结果见[http://t.csdn.cn/iSeSH] 文章目录 一. 利用组件注解符精简Spring配置文件 1.1 创建新包 1.2 复制四个类 1.3 修 ...

  3. Spring框架学习笔记01:初探Spring——采用Spring配置文件管理Bean

    文章目录 一.Spring概述 二.入门案例演示 (一)创建Maven项目[SpringDemo2021] (二)在pom.xml文件里添加依赖 场景:勇敢的骑士去完成杀龙的任务. (三)创建杀龙任务 ...

  4. 采用Spring配置文件管理Bean(2)

    文章目录 一.采用构造方法注入方式注入属性值 1.创建救美任务类 2.创建救美骑士类 3.创建旧救美骑士测试类 4.配置救美骑士Bean 5.创建新救美骑士测试类 一.采用构造方法注入方式注入属性值 ...

  5. Windows驱动开发学习笔记(一)—— 环境配置第一个驱动程序

    Windows驱动开发学习笔记(一)-- 环境配置&第一个驱动程序 环境配置 第一个驱动程序 环境配置 安装VS2010:https://pan.baidu.com/s/1uZWWxCtB60 ...

  6. JAVA企业级开发学习笔记

    杂项 JAVA概述 JAVA API 在线文档 www.matools.com JAVA发展历史 1990 sun公司启动绿色计划,1992年创建java语言,1994gosling参加硅谷大会演示j ...

  7. java ndk_NDK开发学习笔记之 javah 及 ndk-build

    上一篇写到 NDK 的基本使用及环境搭建. 并写了一个简单的 cpp 文件,但是有没有发现在编写 cpp 文件中的函数时,名字是不是很长,很容易写错! 那么,哟没有方法,自动生成函数名呢?没错,你猜对 ...

  8. java微信自动回复机器人开发(java微信开发学习笔记3)

    微信自动回复机器人原理很简单,获取用户发送到后台的数据,然后调用机器人的api进行回复即可.我使用的茉莉机器人,官网地址如下: http://www.itpk.cn/ 茉莉机器人的api:http:/ ...

  9. JAVA串口开发学习笔记1

    1.下载java Communications api开发包.  2.将win32com.dll拷贝入C:\j2sdk1.4.2_04\bin 3.将comm.jar拷贝入C:\j2sdk1.4.2_ ...

最新文章

  1. python中可变参数args_python 可变参数 *args, **kwds
  2. 转: linux 命令行设置网络
  3. mysql 回滚段 表空间_oracle回滚段和回滚表空间
  4. ACM-ICPC 2018 沈阳赛区网络预赛 Spare Tire(容斥+公式推)
  5. Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)
  6. 16位汇编 使用word ptr和byte ptr的寻址方式
  7. Perl 之 use(), require(), do(), %INC and @INC
  8. 这样理解PWM,想不懂都难!
  9. layer.open 强化1
  10. ctrl+shift+f被搜狗输入法占用的解决方法
  11. ssm+maven+eclipse框架搭建
  12. mysql数据库补救措施_关于MySql数据库误操作数据找回的办法
  13. mac上解决中文乱码, arara实现LaTex多命令执行, LaTeXiT法文界面转英文
  14. 2018-03-07 Linux学习
  15. vtkDataObject 与vtkImageData
  16. 问题-delphi无法编辑oracle表
  17. 多用户商城系统三级分销的设计和实现
  18. 国家机关可免费使用百会办公门户一年
  19. 二叉树的前中后序遍历(非递归实现)
  20. 什么是URL?URL是什么意思?

热门文章

  1. 安卓java修改热点_修改Android源码实现连接指定BSSID的热点
  2. 2.表白被拒绝了怎么办
  3. springboot中poi操作合集
  4. Java外卖点餐系统-毕业设计
  5. 网易收购锤子的可能与不可能(老罗已辟谣)
  6. 2022强网拟态pwn-store
  7. 北大图灵班学子斩获全球竞赛本科生第一名,攻关EDA“卡脖子”技术难题!
  8. dede文章内容页{dy}去掉拼音标题后面的ID的方法
  9. 毕业两年,我变成了一个废人。
  10. 转载-显著性水平入门