用spring管理和实例化对象的四种方式
用spring管理和实例化对象的四种方式
方式一:无参构造函数(最常用) 对象是spring创建,创建的对象还要交给spring容器管理
bean:豆子
id:在spring容器中Hello对象的名,在容器中id的值必须唯一
class:要对哪个类实例化对象,遵守 包名.类名
底层:Object obj=Class.forName(“包名.类名”).newInstance();(反射原理)
如何断定包名.类名是正确,按住ctrl键用鼠标放在class属性的值上
<bean id="hello" class="com.tarena.ioc.Hello"></bean>
方式二:静态工厂方式,对象是别的渠道创建的,交给给spring管理 spring_factory.xml
对象不是spring创建的是由Calendar.getInstance()方法创建的
其他渠道创建完毕的对象交给spring管理
<bean id="cal" class="java.util.Calendar" factory-method="getInstance"></bean>测试代码:
@Test
public void testFactory1(){//启动spring容器ApplicationContext context=new ClassPathXmlApplicationContext("resources/spring_factory.xml");Calendar cal=context.getBean("cal",Calendar.class);System.out.println(cal.getTime());
}
方式三:实例工厂,在别的渠道new完的对象,交给spring管理
if是InstanceFactory类类型的对象,是spring容器创建的
hello是Hello类类型的对象,在getHello方法中创建交给spring管理
hello对象的产生,必须通过factory-bean=“if” 调用getHello
<bean id="if"
class="com.tarena.factory.InstanceFactory"></bean>
<bean id="hello" factory-bean="if" factory-method="getHello"></bean>
测试代码:@Testpublic void testFactory2(){//启动spring容器ApplicationContext context=new ClassPathXmlApplicationContext("resources/spring_factory.xml");Hello hello=context.getBean("hello",Hello.class); hello.sayHi();
}
方式四:spring工厂方式,在别的渠道实例化对象,把对象交给spring容器管理
用getbean获取id为hello1的对象,spring会自动调用
SpringFactory里的getObject方法
<bean id="hello1" class="com.tarena.factory.SpringFactory"></bean>
测试代码:@Testpublic void testFactory3(){//启动spring容器ApplicationContext context=new ClassPathXmlApplicationContext("resources/spring_factory.xml");Hello hello=context.getBean("hello1",Hello.class); hello.sayHi();
}
以上就是spring管理和实例化对象的四种方法。
用spring管理和实例化对象的四种方式相关推荐
- java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式
java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...
- spring加载ApplicationContext.xml的四种方式
spring加载ApplicationContext.xml的四种方式 spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源.Spring中的几种容器都 ...
- 详解C#实例化对象的三种方式及性能对比
前言 做项目过程中有个需求要实例化两万个对象并添加到List 中,这个过程大概需要1min才能加载完(传参较多),于是开启了代码优化之旅,再此记录. 首先想到的是可能实例化比较耗时,于是开始对每种实例 ...
- Spring IOC (DI) 依赖注入的四种方式
依赖注入的四种方式: set 注入 赋值,默认使用的是set() 方法,依赖注入底层是通过反射实现的 <bean id="student" class="cust. ...
- Java遍历Map对象的四种方式
关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. 1 2 3 4 Map<Integer, Intege ...
- java遍历多层map_Java遍历Map对象的四种方式
文章转自: https://www.cnblogs.com/fqfanqi/p/6187085.html 关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况 ...
- Spring中配置Hibernate事务的四种方式
2019独角兽企业重金招聘Python工程师标准>>> 为了保证数据的一致性,在编程的时候往往需要引入事务这个概念.事务有4个特性:原子性.一致性.隔离性.持久性. 事务的种类有两种 ...
- 【Spring】Spring的IOC依赖注入的四种方式
作者简介:大家好,我是五度鱼,一个普通的Java领域博主,不停输出Java技术博客和干货. 座右铭:锲而不舍,金石可镂. 个人主页:五度鱼学Java的主页 文章目录 前言 1. set注入 2. 构造 ...
- spring mvc 返回json数据的四种方式
一.返回ModelAndView,其中包含map集 /** 返回ModelAndView类型的结果* 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式为{ ...
最新文章
- python开发信息系统权限设置_[Python学习] Django 权限控制
- RHCE认证培训+考试七天实录(一)
- 详解python的super()的作用和原理
- Centos中配置环境变量
- c语言指针和数组的联系
- Linux (Ubuntu/CentOS) 添加用户并授予sudo的权限
- 它来了!IntelliJ IDEA 2020.1 稳定版发布
- lunux安装多个mysql_实例详解linux下多个mysql5.7.19(tar.gz)安装图文教程
- Domino(群组工作软件)
- 重启docker容器命令
- 【老骥伏枥-原创】制作黑威联通启动盘:进阶篇
- 苹果Mac系统彻底关闭开机声音duang~
- Windows和Linux(Ubuntu)查看电脑主机型号和序列号的命令
- 基于Win10的Peach下载安装以及Modbus模糊测试
- KPM算法详解(Next数组)
- IPO是终点,还是起点?
- h5跳转到小程序总是出现页面不存在-微信小程序开发
- 生活中的定律之马太效应
- 叙述两个计算机应用,计算机应用基础模拟试卷2
- 中国传感器制造产业投资前景分析与未来发展战略咨询报告2021-2027年