Java企业开发学习笔记(1.1)采用Spring配置文件管理Bean
该文章主要为完成实训任务,详细实现过程及结果见【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相关推荐
- Java企业开发学习笔记(1.5.1)采用配置方式使用AOP
该文章主要为完成实训任务,详细实现过程及结果见[http://t.csdn.cn/FBkpc] 文章目录 一.采用配置方式使用AOP 1.1 创建所需子包 1.2 创建杀龙任务类 1.3 创建勇敢骑士 ...
- Java企业开发学习笔记(1.2)利用组件注解符精简Spring配置文件
该文章主要为完成实训任务,详细实现过程及结果见[http://t.csdn.cn/iSeSH] 文章目录 一. 利用组件注解符精简Spring配置文件 1.1 创建新包 1.2 复制四个类 1.3 修 ...
- Spring框架学习笔记01:初探Spring——采用Spring配置文件管理Bean
文章目录 一.Spring概述 二.入门案例演示 (一)创建Maven项目[SpringDemo2021] (二)在pom.xml文件里添加依赖 场景:勇敢的骑士去完成杀龙的任务. (三)创建杀龙任务 ...
- 采用Spring配置文件管理Bean(2)
文章目录 一.采用构造方法注入方式注入属性值 1.创建救美任务类 2.创建救美骑士类 3.创建旧救美骑士测试类 4.配置救美骑士Bean 5.创建新救美骑士测试类 一.采用构造方法注入方式注入属性值 ...
- Windows驱动开发学习笔记(一)—— 环境配置第一个驱动程序
Windows驱动开发学习笔记(一)-- 环境配置&第一个驱动程序 环境配置 第一个驱动程序 环境配置 安装VS2010:https://pan.baidu.com/s/1uZWWxCtB60 ...
- JAVA企业级开发学习笔记
杂项 JAVA概述 JAVA API 在线文档 www.matools.com JAVA发展历史 1990 sun公司启动绿色计划,1992年创建java语言,1994gosling参加硅谷大会演示j ...
- java ndk_NDK开发学习笔记之 javah 及 ndk-build
上一篇写到 NDK 的基本使用及环境搭建. 并写了一个简单的 cpp 文件,但是有没有发现在编写 cpp 文件中的函数时,名字是不是很长,很容易写错! 那么,哟没有方法,自动生成函数名呢?没错,你猜对 ...
- java微信自动回复机器人开发(java微信开发学习笔记3)
微信自动回复机器人原理很简单,获取用户发送到后台的数据,然后调用机器人的api进行回复即可.我使用的茉莉机器人,官网地址如下: http://www.itpk.cn/ 茉莉机器人的api:http:/ ...
- JAVA串口开发学习笔记1
1.下载java Communications api开发包. 2.将win32com.dll拷贝入C:\j2sdk1.4.2_04\bin 3.将comm.jar拷贝入C:\j2sdk1.4.2_ ...
最新文章
- python中可变参数args_python 可变参数 *args, **kwds
- 转: linux 命令行设置网络
- mysql 回滚段 表空间_oracle回滚段和回滚表空间
- ACM-ICPC 2018 沈阳赛区网络预赛 Spare Tire(容斥+公式推)
- Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)
- 16位汇编 使用word ptr和byte ptr的寻址方式
- Perl 之 use(), require(), do(), %INC and @INC
- 这样理解PWM,想不懂都难!
- layer.open 强化1
- ctrl+shift+f被搜狗输入法占用的解决方法
- ssm+maven+eclipse框架搭建
- mysql数据库补救措施_关于MySql数据库误操作数据找回的办法
- mac上解决中文乱码, arara实现LaTex多命令执行, LaTeXiT法文界面转英文
- 2018-03-07 Linux学习
- vtkDataObject 与vtkImageData
- 问题-delphi无法编辑oracle表
- 多用户商城系统三级分销的设计和实现
- 国家机关可免费使用百会办公门户一年
- 二叉树的前中后序遍历(非递归实现)
- 什么是URL?URL是什么意思?