spring26-1: bean的实例方式
三种bean实例化方式: 默认构造,静态工厂,实例工厂。
默认构造:
<bean id="" class=""></bean> 这种方式就是使用类的默认构造创建实例对象
静态工厂:
常用与spring整合其他框架(工具);静态工厂,用于生成实例对象,所有的方法必须是static.
<bean id="" class="工厂全限定类名" factory-method="静态方法"></bean>
package com.atChina.staticFactory;public interface SomeService {void doSome();
}package com.atChina.staticFactory;public class SomeServiceImpl implements SomeService {public SomeServiceImpl(){System.out.println("SomeServiceImpl...无参构造函数..");}@Overridepublic void doSome() {System.out.println("doSome业务方法...");}// 定义bean的生命始末方法,自定义方法参与到spring创建和销毁对象的过程中。// 初始化方法public void startUp(){System.out.println("bean的初始化方法,可以完成构造方法的功能,给属性赋值,初始化其他对象");}// bean销毁之前执行的方法public void endDown(){System.out.println("bean对象销毁之前执行的方法,清楚对象,释放内存");}
}package com.atChina.staticFactory;public class MyBeanFactory {public static SomeService createService(){return new SomeServiceImpl();}
}
<bean id="someService2" class="com.atChina.staticFactory.MyBeanFactory" factory-method="createService" />
@Testpublic void testStaticFactory(){String configLocation = "applicationContext.xml"; // 类路径的根目录ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation);com.atChina.staticFactory.SomeService ss = (com.atChina.staticFactory.SomeService)ctx.getBean("someService2");ss.doSome(); }
实例工厂
必须先有工厂实例对象,通过实例对象创建对象。提供所有的方法都是非静态的。
package com.atChina.Factory;public interface SomeService {void doSome();
}package com.atChina.Factory;public class SomeServiceImpl implements SomeService {public SomeServiceImpl(){System.out.println("SomeServiceImpl...无参构造函数..");}@Overridepublic void doSome() {System.out.println("doSome业务方法...");}// 定义bean的生命始末方法,自定义方法参与到spring创建和销毁对象的过程中。// 初始化方法public void startUp(){System.out.println("bean的初始化方法,可以完成构造方法的功能,给属性赋值,初始化其他对象");}// bean销毁之前执行的方法public void endDown(){System.out.println("bean对象销毁之前执行的方法,清楚对象,释放内存");}
}package com.atChina.Factory;public class MyBeanFactory {public SomeService createService(){return new SomeServiceImpl();}
}
<!-- 创建实例工厂 --><bean id="myBeanFactory" class="com.atChina.Factory.MyBeanFactory" /><!-- 从实例工厂获得someService --><bean id="someService3" factory-bean="myBeanFactory" factory-method="createService" />
@Testpublic void testFactory(){String configLocation = "applicationContext.xml"; // 类路径的根目录ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation);com.atChina.Factory.SomeService ss = (com.atChina.Factory.SomeService)ctx.getBean("someService3");ss.doSome(); }
spring26-1: bean的实例方式相关推荐
- Spring学习笔记:2(IOC装配Bean之xml方式)
xml配置方式装配Bean 本文借鉴于:https://www.cnblogs.com/qdhxhz/p/6511887.html Spring框架Bean实例化的方式提供了三种方式实例化Bean 构 ...
- IOC操作Bean管理注解方式(创建对象)
目录 IOC操作Bean管理注解方式(创建对象) 1.什么是注解 2.Spring 针对 Bean 管理中创建对象提供注解主要有以下四种 (1)@Component (2)@Service (3)@C ...
- IOC操作Bean管理XML方式(bean 的生命周期)
目录 IOC操作Bean管理XML方式(bean 的生命周期) 1.bean 的生命周期(在单例模式下的生命周期) (1)通过构造器创建 bean 的实例(执行类中无参构造方法去创建对象) (2)为 ...
- IOC操作Bean管理XML方式(bean的作用域)
目录 IOC操作Bean管理XML方式(bean的作用域) 1.在Spring 里面,设置创建 bean 实例是单实例还是多实例的方式 (1)在Spring 配置文件bean 标签里面有属性(scop ...
- IOC操作Bean管理XML方式(FactoryBean)
目录 IOC操作Bean管理XML方式(FactoryBean) Spring 有两种类型的bean 第一种:是普通的 bean 第二种:工厂bean FactoryBean 第一步:创建类,让这个类 ...
- spring框架学习(一):Bean的装配方式 ——基于注解的装配、自动装配
Bean的装配方式 基于注解装配 常用注解: 总结 自动装配 [序言] 在前面的例子中我们就可以看到了使用基于XML方式的缺点了:如果应用中有较多的Bean对象,则会导致xml文件过于臃肿,给后续的维 ...
- Spring Bean、XML方式Bean配置、Bean实例化配置、Bean注入
文章目录 Bean管理 一.SpringBoot Bean 初了解 1.1 了解 1.2 Bean的作用域 1.2.1 注意事项 1.3 第三方Bean 二. 基于XML方式Bean的配置 2.1 S ...
- 实验5:配置通过静态工厂方法创建的bean、实例工厂方法创建的bean、(FactoryBean测试)★
实验5:配置通过静态工厂方法创建的bean.实例工厂方法创建的bean.(FactoryBean测试)★ bean的创建默认就是框架利用反射new出来的bean实例 工厂模式:工厂帮我们创建对象:有一 ...
- spring中bean的细节之三种创建Bean对象的方式
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
最新文章
- PHP中Header函数和PHP_AUTH_USER做用户验证
- Linux popen和pclose启动shell命令的问题思考
- Redis工作笔记-Set类型
- Tensorflow中卷积的padding操作
- DeepMind科学家:强化学习足以满足通用AI需求
- 实际生产中,微服务用 Spring Cloud 多还是 Dubbo 多?
- linux 添加软连接、查看软连接、增加文件的执行权限
- sublime下编辑LaTeX
- 深度Linux操作系统使用体验
- Chrome应用商店打不开问题
- 下载Chrome浏览器crx文件插件最简单方法
- 导函数连续、可导、可微、连续、有界、可积的关系,史上最全!一张图搞定!
- 摘抄整理:基于数据驱动的故障诊断方法综述
- Airbnb新用户民宿预定情况预测
- 2023 抖音表情包小程序变现项目 详细玩法视频课程
- 如何做到精准引流获客?
- gif制作方法教学,教你快速上手制作gif动图
- 美女画廊(点击上面的图片下面进行显示)
- Hash算法总结(转载)
- 八、【中级篇】数码管驱动(74HC138,74HC595)