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 ...
随机推荐
- oracle数据库查看和解除死锁
查看死锁: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_ ...
- Ajax+setInterval定时异步刷新页面
这个是之前一个项目中用到的功能,现在记录一下他的使用步骤. 现在讲解一下具体的关键代码: 1. window.onload:是指等待页面html和css都执行完毕以后才开始执行js文件,因为我这个 ...
- [Web Service] Tutorial Basic Concepts
WSDL是网络服务描述语言,是一个包含关于web service信息(如方法名,方法参数)以及如何访问它. WSDL是UDDI的一部分. 作为web service 应用程序之间的接口,发音为wiz- ...
- LINQ to Entities 不识别方法“System.DateTime AddDays(Double)
今天本想在linq里按照时间筛选一下超时的数据,一共两个字段FeedBackTime(计划反馈时间).EndTime(实际反馈时间).需求是这样的,查找数据库里所有EndTime大于FeedBackT ...
- DS博客作业01--日期抽象数据类型设计与实验
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2 学习体会 2.大作业作业内容 (6分) 2.1 设计日期的ADT类型(1分) ADT DATE{ 数据对象:D={year,mo ...
- vue2 inheritAttrs、attrs和attrs和listeners使用
inheritAttrs.attrs和attrs和listeners使用场景: 组件传值,尤其是祖孙组件有跨度的传值. (1)inheritAttrs 属性说明:https://cn.vuejs.or ...
- C#数组--(Array类的属性和方法)
Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义.Array 类提供了各种用于数组的属性和方法,可看作扩充了功能的数组(但不等同数组),可以使用Array类的属性来对数组 ...
- application.xml中配置文件properties导入
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.Prop ...
- Mock.js——数据模板定义
1. 安装 npm install mockjs --save-dev //安装开发依赖 2. 数据模板定义规则 Mock.mock({...}) String: 'string|num1-num2' ...
- vue-cli中怎么样使用less
1.安装安装less依赖,npm install less less-loader --save 2.修改配置文件, 在build/webpack.base.conf.js文件的module.expo ...