Spring学习----IoC容器创建对象
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容器创建对象相关推荐
- Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解
IOC容器创建对象及接口详解 引言 类的建立 配置文件 IOC创建对象 运行结果 接口详解 (1)接口一`ClassPathXmlApplicationContext` (2)接口二:`FileSys ...
- 框架:简单实现Spring的IOC容器
学习过Spring的同学都知道,Spring框架的核心就是IoC和AOP.Spring可以理解为一个工厂,负责对象的创建和对象间关系的维护.IoC即控制反转,简单点说就是原来的对象是在要使用之前通过在 ...
- spring的IOC容器
文章目录 1. IOC.IOC容器.Bean.DI 2. 核心概念小结 3,入门案例 3.1 IOC入门案例 3.1.1 入门案例思路分析 3.1.2 入门案例代码实现 步骤1:创建Maven项目 步 ...
- java框架注入是创建对象吗_spring之IOC容器创建对象
1.术语了解 1.1组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响:即需要实现或继承某些特定类. 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响. 例如:Hi ...
- [Spring 深度解析]第6章 Spring的IoC容器系列
6. Spring的IoC容器系列 IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...
- 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...
- 在servlet(或者filter或者listener)中使用spring的IOC容器
web.xml中的加载顺序为:listener >> filter >> servlet >> spring.其中filter的执行顺序是filter- mappi ...
- Spring(一)——用Spring IOC容器创建对象
文章目录 1. Spring简介 2. 创建一个Spring项目 3. 用Spring IOC创建对象 1. Spring简介 是作为Java EE开发的一个框架,可以实现对象的注入.事务管理.面向切 ...
- Spring框架学习[IoC容器高级特性]
1.通过前面4篇文章对Spring IoC容器的源码分析,我们已经基本上了解了Spring IoC容器对Bean定义资源的定位.读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取 ...
最新文章
- RANSAC算法(2):(拟合平面)本文以地面为基础以及源码分布解读
- 将Eclipse代码导入到AndroidStudio的两种方式
- 与交换机延迟相关的各种“秒”的单位
- swift 实践- 10 -- UIProgressView
- js 之 object
- 【Shell】使用记录
- [USACO1.2]双重回文数 Dual Palindromes
- Spark Structured SQL报错:Stream stream joins without equality predicate is not supported
- linux的 定时器传参数,JavaScript 定时器调用传递参数的方法
- Vue 中使用 codemirror
- AES67和Dante 混合系统环境下的系统配置(无DDM)
- 澎思智慧社区解决方案:“人像+ReID行人再识别”算法融合机制开发新一代智慧社区平台 |百万人学AI评选
- 【已解决】找不到某服务器 IP 地址
- Google两步验证安装使用方法
- RTOS 系统篇-看门狗 WatchDog 2
- 导入项目时红色小时钟的处理办法
- [转]火星车的移动机构
- python zxing 二维码识别
- AutoCAD中画一条同时与一条直线和一个圆相切的圆
- 「github资料」40个Python可视化图表案例(附零基础学习资料)
热门文章
- python与excel做数据可视化-用Python进行数据可视化的10种方法
- python官网 中文版 新闻-小伙Python爬虫并自制新闻网站,太好玩了
- python教程书籍-初学者最好的Python书籍列表
- 学python需要学数据库吗-学习Python爬虫前,你必须知道的一些工具!
- python画函数曲线-Python 绘制你想要的数学函数图形
- python对象编程例子-Python3.5面向对象编程图文与实例详解
- java好还是python好-学Python 好还是java 好?
- 学python的主流就业方向-Python有哪些就业方向 你知道Python的优势吗
- python自学路线-各个阶段的python学习路线?
- python基础知识思维导图-python基础知识思维导图1