spring Ioc容器之使用XML配置Bean
1、项目截图
2、创建xml文件
3、打印机接口
package com.example.demo.computerTest; public interface Printer {
void init();
void print(String txt);
}
4、彩色打印机
package com.example.demo.computerTest; public class ColorPrinter implements Printer {
@Override
public void init() {
System.out.println("启动彩色打印机!");
} @Override
public void print(String txt) {
System.out.println("打印彩色文字:".concat(txt));
}
}
5、电脑类
package com.example.demo.computerTest; public class Computer {
String manu;
String type;
Printer p; public String getManu() {
return manu;
} public void setManu(String manu) {
this.manu = manu;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
}
//printTxt()方法接收一个参数给打印机的print()方法实现打印的功能
public void printTxt(String txt){
p.init();
p.print(txt);
} public Printer getP() {
return p;
} public void setP(Printer p) {
this.p = p;
}
}
6、测试类
说明:
通过ClassPathXmlApplicationContext载入XML文件
通过向context.getBean()方法中传入参数,获取具体的bean,这个参数就是XML文件中的id名;
通过实例对象p可以调用Computer类中的方法,可以获取配置文件中为Computer类属性设置的值。
package com.example.demo.computerTest; import org.springframework.context.support.ClassPathXmlApplicationContext; public class computerTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("computers.xml");
Computer p = (Computer)context.getBean("pc");
p.printTxt("Hello,spring!");
System.out.println(p.getManu());
System.out.println(p.getType());
}
}
7、xml配置
说明:
通过id属性给每个Bean设置id;
通过class属性设置Bean的位置
通过ref属性可以引用已经定义好的bean
通过property可以操作bean中的属性:
name属性指定bean中的某个属性
value为该属性设置指定的值
<?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-3.0.xsd">
<bean id="colorPrinter" class="com.example.demo.computerTest.ColorPrinter"/>
<bean id="pc" class="com.example.demo.computerTest.Computer">
<property name="manu">
<value>苹果</value>
</property>
<property name="type" value="IPad"/>
<property name="p" ref="colorPrinter"/>
</bean>
</beans>
8、效果:
1、测试类还可以是下面的代码
package com.example.demo.computerTest; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class computerTest {
public static void main(String[] args) {
//ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("computers.xml");
//Computer p = (Computer)context.getBean("pc");
//p.printTxt("Hello,spring!");
//System.out.println(p.getManu());
//System.out.println(p.getType()); ApplicationContext context = new ClassPathXmlApplicationContext("computers.xml");
Computer p = (Computer) context.getBean("pc");
p.printTxt("Hello,Spring!"); }
}
2、效果:
spring Ioc容器之使用XML配置Bean的更多相关文章
- Spring IOC机制之使用注解配置bean
一. 通过注解配置bean 1.1 概述 相对于XML方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件化开发的理念十分契合,是开发中常用的使用方式. 1.2 ...
- 【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean
[spring以及第三方jar的案例]在spring中的aop相关配置的标签,线程池相关配置的标签,都是基于该种方式实现的.包括dubbo的配置标签都是基于该方式实现的.[一]原理 ===>sp ...
- spring-framework-中文文档一:IoC容器、介绍Spring IoC容器和bean
5. IoC容器 5.1介绍Spring IoC容器和bean 5.2容器概述 本章介绍Spring Framework实现控制反转(IoC)[1]原理.IoC也被称为依赖注入(DI).它是一个过程, ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(6):Spring IOC容器学习(概念、作用、Bean生命周期)
一.IOC控制反转概念 控制反转(IOC)是一种通过描述(在Java中可以是XML或者是注解)并通过第三方去生产或获取特定对象的方式. 主动创建模式,责任在于开发者,而在被动模式下,责任归于Ioc容器 ...
- Spring IoC 容器和 bean 对象
程序的耦合性: 耦合性(Coupling),又叫耦合度,是对模块间关联程度的度量.耦合的强弱取决于模块间接口的复杂性.调用模块的方式以及通过界面传送数据的多少.模块间的耦合度是指模块之间的依赖关系,包 ...
- Spring IoC容器总结(未完)
在面向对象系统中,对象封装了数据和对数据的处理,对象的依赖关系常常体现在对数据和方法的依赖上.这些依赖关系可以通过把对象的依赖注入交给框架或IOC容器来完成,这种从具体对象手中交出控制的做法是非常有价 ...
- 学习Spring(一) 实例化Spring IoC容器
实例化Spring IoC容器 1,读取其配置来创建bean实例 2,然后从Spring IoC容器中得到可用的bean实例 Spring提供两种IoC容器实现类型 a,一种为bean工厂 b,应用程 ...
- Spring IOC 源码简单分析 02 - Bean Reference
### 准备 ## 目标 了解 bean reference 装配的流程 ##测试代码 gordon.study.spring.ioc.IOC02_BeanReference.java ioc02 ...
- Spring IOC 容器预启动流程源码探析
Spring IOC 容器预启动流程源码探析 在应用程序中,一般是通过创建ClassPathXmlApplicationContext或AnnotationConfigApplicationConte ...
随机推荐
- CentOS7攻克日记(三) —— 安装Python3.6
我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了 我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...
- async/await 的使用
async : 使用 async 修饰符可将方法.lambda 表达式或匿名方法指定为异步. 如果对方法或表达式使用此修饰符,则其称为异步方法 await: await 运算符应用于异步方法中的任务, ...
- thinkphp 操作xml格式
前言:虽然xml的格式看起来跟html差不多,但是最近做项目由于用的是thinkphp5.0的版本,做的过程中还是遇到了一些问题.在这里做一下记录. 首先我们需要定义一个dom对象,我们都知道 php ...
- HDU 5115 (杀狼,区间DP)
题意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力.你杀死一只狼.你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时, ...
- Hadoop2.X管理与开发
Hadoop 2.X 管理与开发 一.Hadoop的起源与背景知识 (一)什么是大数据 大数据(Big Data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式 ...
- mint修改host
sudo xed /etc/hosts # Pycharm 0.0.0.0 account.jetbrains.com0.0.0.0 www.jetbrains.com #sublime text3 ...
- 算法笔记--次小生成树 && 次短路 && k 短路
1.次小生成树 非严格次小生成树:边权和小于等于最小生成树的边权和 严格次小生成树: 边权和小于最小生成树的边权和 算法:先建好最小生成树,然后对于每条不在最小生成树上的边(u,v,w)如果我们 ...
- xls文件导入数据库
protected void btn_ok_Click(object sender, EventArgs e) { int num = 0; ...
- DB9针和DB25针串口的引脚定义
<设备监控技术详解>第3章串口设备监控,本章着力介绍串口交换机和串口联网方式.本节为大家介绍标准25针串口的引脚定义. 作者:李瑞民来源:机械工业出版社 3.3 串口线的制作和转换 串口的 ...
- ubuntu下安装 java环境
步骤1:下载jdk 我选择的jdk版本文件: jdk-8u201-linux-x64.tar 官网下载链接 步骤2:创建单独的目录 sudo mkdir /usr/local/java 步骤3:将下载 ...