spring——通过xml文件配置IOC容器
创建相关的类(这里是直接在之前类的基础上进行修改)
package com.guan.dao; public interface Fruit {
String getFruit();
}
package com.guan.dao; public class FruitImpl implements Fruit {
public String getFruit() {
return "Buy Some fruit";
}
}
package com.guan.service; import com.guan.dao.Fruit; public interface UserService {
String buyFruit();
void setFruit(Fruit fruit);
}
package com.guan.service; import com.guan.dao.Apple;
import com.guan.dao.Fruit;
import com.guan.dao.FruitImpl; public class UserServiceImpl implements UserService{
Fruit fruit; public UserServiceImpl() {
fruit = new FruitImpl();
} public String buyFruit() {
return fruit.getFruit();
} public void setFruit(Fruit fruit){
this.fruit = fruit;
} }
在resources目录下添加配置文件:beans.xml
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="fruit" class="com.guan.dao.FruitImpl"></bean>
<bean id="apple" class="com.guan.dao.Apple"></bean> <bean id="userService" class="com.guan.service.UserServiceImpl">
<property name="fruit" ref="fruit"></property>
</bean> </beans>
注:
(1).即便没有属性需要初始化也需要通过
<bean>
来对其进行实例化,而不再需要new(2).
<property>
的注入需要类中存在set方法(3).对于属性的赋值的两种方式
- 对于基本类型的赋值可以用value属性
- 对于对象类型可以用ref(reference)属性以及
<bean>
中的id初始化
创建并使用实例
import com.guan.dao.Fruit;
import com.guan.service.UserService;
import com.guan.service.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) {
//create and configure beans
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//retrieve configured instance
UserService userService = (UserService) context.getBean("userService");
System.out.println(userService.buyFruit());
}
}
其它相关配置
alias:给bean起别名,可以用多个不同的别名取出同一个类的实例
bean
(1).id:bean的唯一标识符
(2).class:bean对象所应的全限定名(包名+类名)
(3).name:也是别名,可以取同时取多个别名
import:用于团队开发使用,可以将多个配置文件导入合并为一个.那么在调用时只要导入一个配置文件即可
spring——通过xml文件配置IOC容器的更多相关文章
- Spring中xml文件配置也可以配置容器list、set、map
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- SSM框架中spring的XML文件配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- Spring的xml文件配置方式实现AOP
配置文件与注解方式的有很大不同,多了很多配置项. beans2.xml <?xml version="1.0" encoding="UTF-8"?> ...
- Spring(十二)使用Spring的xml文件配置方式实现AOP
配置文件与注解方式的有非常大不同,多了非常多配置项. beans2.xml <?xml version="1.0" encoding="UTF-8"? & ...
- 重新学习之spring第一个程序,配置IOC容器
第一步:导入相关jar包(此范例导入的是spring3.2.4版本,spring2.5版本只需要导入spring核心包即可) 第二步:在项目的src下配置applicationContext.xml的 ...
- 【spring源码分析】IOC容器解析
参考: https://www.iteye.com/topic/1121913(自动注入bean的扫描器) https://m.imooc.com/mip/article/34150(循环依赖的解决方 ...
- Spring框架入门之基于xml文件配置bean详解
关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...
- Spring整合Hibernate的XML文件配置,以及web.xml文件配置
利用Spring整合Hibernate时的XML文件配置 applicationContext.xml <?xml version="1.0" encoding=" ...
- Spring 在xml文件中配置Bean
Spring容器是一个大工厂,负责创建.管理所有的Bean. Spring容器支持2种格式的配置文件:xml文件.properties文件,最常用的是xml文件. Bean在xml文件中的配置 < ...
随机推荐
- go基础——for语法
package main import "fmt" /* for循环:某些代码会多次的执行 */ func main() { for i := 1; i <= 3; i++ ...
- python基础语法_9-1闭包 装饰器补充
1.闭包的概念 closure:内部函数中对enclosing作用域的变量进行引用,外部函数返回内部函数名 2.函数实质与属性 函数是一个对象:在内存中有一个存储空间 函数执行完成后内部变量回收: ...
- 基于UDP传输协议局域网文件接收软件设计 Java版
网路传输主要的两大协议为TCP/IP协议和UDP协议,本文主要介绍基于UDP传输的一个小软件分享,针对于Java网络初学者是一个很好的练笔,大家可以参考进行相关的联系,但愿能够帮助到大家. 话不多说, ...
- MySQL数据库初识、下载使用(针对库、表、记录的增删改查)
今日内容概要 数据演变史 数据库软件的本质 MySQL简介 下载与安装 基本配置 基本SQL语句 内容详细 1.数据演变史 # 1.单独的文本文件 没有固定的存放位置和格式 文件名:user.txt ...
- ConcurrentHashMap (jdk1.7)源码学习
一.介绍 1.Segment(分段锁) 1.1 Segment 容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并 ...
- Redis 源码简洁剖析 13 - RDB 文件
RDB 是什么 RDB 文件格式 Header Body DB Selector AUX Fields Key-Value Footer 编码算法说明 Length 编码 String 编码 Scor ...
- Hyperledger Fabric 2.x Java区块链应用
一.说明 在上一篇文章中 <Hyperledger Fabric 2.x 自定义智能合约> 分享了智能合约的安装并使用 cli 客户端进行合约的调用:本文将使用 Java 代码基于 fab ...
- 实践GoF的23种设计模式:SOLID原则(上)
摘要:本文以我们日常开发中经常碰到的一些技术/问题/场景作为切入点,示范如何运用设计模式来完成相关的实现. 本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者: ...
- 【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入
前言:在C/S架构上,WPF无疑已经是"桌面一霸"了.在.NET生态环境中,很多小伙伴还在使用Winform开发C/S架构的桌面应用.但是WPF也有很多年的历史了,并且基于MVVM ...
- iOS 产品新需求,要让collectionView 的背景跟着Cell 一块儿动!!!
标题如上!看如何解决 最近产品经理来需求了,就像标题上的一样,要求,给collectionView添加一个背景,并且这个背景,还能跟着cell滑动这么一个效果,这个需求把我看懵了,让我不知所措,这该如 ...