Spring之IOC容器
一,概述
1)SpringIOC容器是Spring的核心内容.作用:创建对象及处理对象的依赖关系.
2)IOC容器创建对象的方式:
a)调用无参数构造器
b)带参数构造器
c)工厂创建对象:工厂类静态方法创建对象;工厂类非静态方法创建对象.
二,IOC创建对象
1)User实体类
package com.bighuan.b_create_obj;public class User {public User(){System.out.println("------创建user对象[无参构造器]----");}public User(int id, String name) {System.out.println("------创建user对象[有参构造器]----");this.id = id;this.name = name;}private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public void init_user(){System.out.println("在创建user对象后初始化");}public void destroy_user(){System.out.println("IOC容器销毁,user对象回收");}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + "]";}}
2)工厂类
package com.bighuan.b_create_obj;public class ObjectFactory {public User getInstance(){return new User(112,"工厂:通过实例方法");}public static User getStaticInstance(){return new User(113,"工厂:通过静态方法");}
}
3)配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- IOC容器的配置:要创建的所有对象都在这里配置 --><!-- ******对象创建********* --><!-- 默认无参数构造器 --><bean id="user1" class="com.bighuan.b_create_obj.User"></bean><!-- 有参构造器 --><bean id="user2" class="com.bighuan.b_create_obj.User"><!-- 基本类型直接写(如int),引用类型写全名(如:java.lang.String) --><constructor-arg value="119" index="0" type="int"></constructor-arg><constructor-arg value="Leslie" index="1" type="java.lang.String"></constructor-arg></bean><!-- 定义一个字符串 --><bean id="str" class="java.lang.String"><constructor-arg value="rose"></constructor-arg></bean><!-- 有参构造器 --><bean id="user3" class="com.bighuan.b_create_obj.User"><!-- 基本类型直接写(如int),引用类型写全名(如:java.lang.String) --><constructor-arg value="119" index="0" type="int"></constructor-arg><constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg></bean><!-- 3,通过工厂创建对象 --><!-- 工厂类:实例方法 --><bean id="factory" class="com.bighuan.b_create_obj.ObjectFactory"></bean><bean id="user4" factory-bean="factory" factory-method="getInstance"></bean><!-- 工厂类:静态方法class:指定的就是工厂类factory-method:指定的就是工厂的静态方法--><bean id="user5" class="com.bighuan.b_create_obj.ObjectFactory" factory-method="getStaticInstance"></bean>
</beans>
4)测试
package com.bighuan.b_create_obj;import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;public class App {@Testpublic void testIOC() throws Exception {//bean.xml在src目录下//ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");//创建IOC容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("com/bighuan/b_create_obj/bean.xml");//获取容器中的对象User user1=(User) ac.getBean("user1");User user2=(User) ac.getBean("user2");User user3=(User) ac.getBean("user3");User user4=(User) ac.getBean("user4");User user5=(User) ac.getBean("user5");System.out.println(user1);System.out.println(user2);System.out.println(user3);System.out.println(user4);System.out.println(user5);}}
测试结果:
------创建user对象[无参构造器]----
------创建user对象[有参构造器]----
------创建user对象[有参构造器]----
------创建user对象[有参构造器]----
------创建user对象[有参构造器]----
User [id=0, name=null]
User [id=119, name=Leslie]
User [id=119, name=rose]
User [id=112, name=工厂:通过实例方法]
User [id=113, name=工厂:通过静态方法]
Spring之IOC容器相关推荐
- [Spring 深度解析]第6章 Spring的IoC容器系列
6. Spring的IoC容器系列 IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...
- 框架:简单实现Spring的IOC容器
学习过Spring的同学都知道,Spring框架的核心就是IoC和AOP.Spring可以理解为一个工厂,负责对象的创建和对象间关系的维护.IoC即控制反转,简单点说就是原来的对象是在要使用之前通过在 ...
- 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...
- spring的IOC容器
文章目录 1. IOC.IOC容器.Bean.DI 2. 核心概念小结 3,入门案例 3.1 IOC入门案例 3.1.1 入门案例思路分析 3.1.2 入门案例代码实现 步骤1:创建Maven项目 步 ...
- 在servlet(或者filter或者listener)中使用spring的IOC容器
web.xml中的加载顺序为:listener >> filter >> servlet >> spring.其中filter的执行顺序是filter- mappi ...
- Spring学习----IoC容器创建对象
SpringIOC容器,是spring核心内容.功能:创建对象,处理对象的依赖关系 IOC容器创建对象: 创建对象, 有几种方式: 1) 调用无参数构造器 2) 带参数构造器 3) 工厂创建对象 ...
- Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext
在Spring IOC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能,另一个是ApplicationContex ...
- Spring框架—IoC容器
首先我们需要了解一下是什么是IoC.IoC是Spring的核心技术之一,全称是Inversion of Control(控制反转).最原始的创建对象的方法就是通过new来实现(手动的编写代码实现),而 ...
- 从源码深处体验Spring核心技术--IOC容器初体验
开局经验之谈:可能从这一篇文章开始,小伙伴们都会有点晕车的感觉了,但是这个系列并不是只是介绍下spring表面的一些肤浅的东西,本系列的目的是为了让大家从源码层次深入理解Spring,这也是大家在未来 ...
- 关于Spring中IOC容器和AOP协同工作的原理理解
1.在详细介绍 IOC 容器的工作原理前,这里先介绍一下实现 IOC 所用到的一些辅助类,包括BeanDefinition.BeanReference.PropertyValues.PropertyV ...
最新文章
- emv中的 部分匹配_【干货】EMV指标的精准运用
- 《python数据分析与挖掘实战》第八章详解
- sqlserver 查看锁表,解锁
- android bench内存测试,华为p10内存测试软件(androbench) v5.0.1 免费版
- 安卓学习笔记08:常用布局 - 线性布局
- javascript判断文件是否存在
- Runner站立会议06
- 恩施机器人编程_恩施安川机器人水切切割编程
- python tkinter
- 叶子结点和分支节点_C++笔试题之求完全二叉树叶子节点数
- java遍历map集合传值,Java之五种遍历Map集合的方式
- 数据库敏感数据加密技术
- 网络靶场攻防综合实验
- idea 关闭检查更新_intellij idea怎么关闭自动更新
- 图片画圈画箭头用什么软件_什么软件可以在编辑图片中画圈圈,如裁图时需要特..._网络编辑_帮考网...
- 使用android sqlite读取数据库的简单方法
- 世界杯已开赛,哪些看球设备让你觉得身临其境?
- leaflet绘制具有虚线框的多边形(125)
- win10打开软件中文乱码怎么修复
- 自然月合同月 生成费用