SpringIOC容器,是spring核心内容。功能:创建对象,处理对象的依赖关系

IOC容器创建对象:
创建对象, 有几种方式:
1) 调用无参数构造器
2) 带参数构造器
3) 工厂创建对象
    工厂类,静态方法创建对象
    工厂类,非静态方法创建对象

spring配置文件:bean.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"  xmlns:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  xsi:schemaLocation="  http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd  http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd">  <!-- ###############对象创建############### -->  <!-- 1. 默认无参数构造器   <bean id="user1" class="cn.itcast.b_create_obj.User"></bean>  -->  <!-- 2. 带参数构造器 -->  <bean id="user2" class="cn.itcast.b_create_obj.User">  <constructor-arg index="0" type="int" value="100"></constructor-arg>  <constructor-arg index="1" type="java.lang.String" value="Jack"></constructor-arg>  </bean>  <!-- 定义一个字符串,值是"Jack" ;  String s = new String("jack")-->  <bean id="str" class="java.lang.String">  <constructor-arg value="Jacks"></constructor-arg>  </bean>  <bean id="user3" class="cn.itcast.b_create_obj.User">  <constructor-arg index="0" type="int" value="100"></constructor-arg>  <constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>  </bean>  <!-- 工厂类创建对象 -->  <!-- # 工厂类,实例方法 -->  <!-- 先创建工厂 -->  <bean id="factory" class="cn.itcast.b_create_obj.ObjectFactory"></bean>  <!-- 在创建user对象,用factory方的实例方法 -->  <bean id="user4" factory-bean="factory" factory-method="getInstance"></bean>  <!-- # 工厂类: 静态方法 -->  <!--   class 指定的就是工厂类型  factory-method  一定是工厂里面的“静态方法”  -->  <bean id="user" class="cn.itcast.b_create_obj.ObjectFactory" factory-method="getStaticInstance"></bean>  </beans>      

实体类

public class User {private int id;private String name;public User() {super();System.out.println("------User对象创建【无参数构造器】------");}public User(int id, String name) {System.out.println("-----User对象创建【带参数构造器】--------");this.id = id;this.name = 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;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + "]";}public void init_user() {System.out.println("创建对象之后,初始化");}public void destroy_user() {System.out.println("IOC容器销毁,user对象回收!");}}

测试类

public class App {// 测试:对象创建
    @Testpublic void testIOC() throws Exception {// 创建IOC容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/b_create_obj/bean.xml");// 获取容器中的对象User user = (User) ac.getBean("user5");System.out.println(user);}// 测试: 容器中对象的写法
    @Testpublic void testObj() throws Exception {// 创建IOC容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/b_create_obj/bean.xml");// 获取容器中的对象User user = (User) ac.getBean("1test");System.out.println(user);}
}

转载于:https://www.cnblogs.com/neuhao/p/7147144.html

Spring学习----IoC容器创建对象相关推荐

  1. Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解

    IOC容器创建对象及接口详解 引言 类的建立 配置文件 IOC创建对象 运行结果 接口详解 (1)接口一`ClassPathXmlApplicationContext` (2)接口二:`FileSys ...

  2. 框架:简单实现Spring的IOC容器

    学习过Spring的同学都知道,Spring框架的核心就是IoC和AOP.Spring可以理解为一个工厂,负责对象的创建和对象间关系的维护.IoC即控制反转,简单点说就是原来的对象是在要使用之前通过在 ...

  3. spring的IOC容器

    文章目录 1. IOC.IOC容器.Bean.DI 2. 核心概念小结 3,入门案例 3.1 IOC入门案例 3.1.1 入门案例思路分析 3.1.2 入门案例代码实现 步骤1:创建Maven项目 步 ...

  4. java框架注入是创建对象吗_spring之IOC容器创建对象

    1.术语了解 1.1组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响:即需要实现或继承某些特定类. 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响. 例如:Hi ...

  5. [Spring 深度解析]第6章 Spring的IoC容器系列

    6. Spring的IoC容器系列 ​ IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...

  6. 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext

    在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...

  7. 在servlet(或者filter或者listener)中使用spring的IOC容器

    web.xml中的加载顺序为:listener >> filter >> servlet >> spring.其中filter的执行顺序是filter- mappi ...

  8. Spring(一)——用Spring IOC容器创建对象

    文章目录 1. Spring简介 2. 创建一个Spring项目 3. 用Spring IOC创建对象 1. Spring简介 是作为Java EE开发的一个框架,可以实现对象的注入.事务管理.面向切 ...

  9. Spring框架学习[IoC容器高级特性]

    1.通过前面4篇文章对Spring IoC容器的源码分析,我们已经基本上了解了Spring IoC容器对Bean定义资源的定位.读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取 ...

最新文章

  1. RANSAC算法(2):(拟合平面)本文以地面为基础以及源码分布解读
  2. 将Eclipse代码导入到AndroidStudio的两种方式
  3. 与交换机延迟相关的各种“秒”的单位
  4. swift 实践- 10 -- UIProgressView
  5. js 之 object
  6. 【Shell】使用记录
  7. [USACO1.2]双重回文数 Dual Palindromes
  8. Spark Structured SQL报错:Stream stream joins without equality predicate is not supported
  9. linux的 定时器传参数,JavaScript 定时器调用传递参数的方法
  10. Vue 中使用 codemirror
  11. AES67和Dante 混合系统环境下的系统配置(无DDM)
  12. 澎思智慧社区解决方案:“人像+ReID行人再识别”算法融合机制开发新一代智慧社区平台 |百万人学AI评选
  13. 【已解决】找不到某服务器 IP 地址
  14. Google两步验证安装使用方法
  15. RTOS 系统篇-看门狗 WatchDog 2
  16. 导入项目时红色小时钟的处理办法
  17. [转]火星车的移动机构
  18. python zxing 二维码识别
  19. AutoCAD中画一条同时与一条直线和一个圆相切的圆
  20. 「github资料」40个Python可视化图表案例(附零基础学习资料)

热门文章

  1. python与excel做数据可视化-用Python进行数据可视化的10种方法
  2. python官网 中文版 新闻-小伙Python爬虫并自制新闻网站,太好玩了
  3. python教程书籍-初学者最好的Python书籍列表
  4. 学python需要学数据库吗-学习Python爬虫前,你必须知道的一些工具!
  5. python画函数曲线-Python 绘制你想要的数学函数图形
  6. python对象编程例子-Python3.5面向对象编程图文与实例详解
  7. java好还是python好-学Python 好还是java 好?
  8. 学python的主流就业方向-Python有哪些就业方向 你知道Python的优势吗
  9. python自学路线-各个阶段的python学习路线?
  10. python基础知识思维导图-python基础知识思维导图1