Spring:Spring-IOC实例化bean的常用三种方式
Spring容器提供了三种对bean的实例化方式:
1)构造器实例化
public class Demo {
private String name;
//getter和setter方法略
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 构造器实例化 -->
<bean id="demo1" class="com.oak.junit.day01.Demo"></bean>
</beans>
测试:
@Test
public void testCtx() {
//实例化Spring容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
//取出demo1
Demo demo1=ctx.getBean("demo1",Demo.class);
System.out.println(demo1);
}
2)静态工厂方法实例化
public class DemoBeanFactory {
//静态工厂方法-返回一个Demo实例
public static Demo staticDemoBean(){
return new Demo();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 构造器实例化 -->
<bean id="demo1" class="com.oak.junit.day01.Demo"></bean> <!-- 静态工厂实例化 class为工厂类 factory-method为静态工厂方法 -->
<bean id="demo2" class="com.oak.junit.day01.DemoBeanFactory"
factory-method="staticDemoBean"></bean>
</beans>
测试:
@Test
public void testCtx() {
//实例化Spring容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
//取出demo1
Demo demo1=ctx.getBean("demo1",Demo.class);
System.out.println(demo1); //取出demo2
Demo demo2=ctx.getBean("demo2",Demo.class);
System.out.println(demo2);
}
3)实例工厂方法是实例化
工厂类中加入实例工厂方法:
public class Demo {
private String name;
//getter和setter方法略
}
public class DemoBeanFactory {
//静态工厂方法-返回一个Demo实例
public static Demo staticDemoBean(){
return new Demo();
}
//实例工厂方法-返回一个Demo实例
public Demo constructorDemoBean(){
return new Demo();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 构造器实例化 -->
<bean id="demo1" class="com.oak.junit.day01.Demo"></bean> <!-- 静态工厂实例化 class为工厂类 factory-method为静态工厂方法 -->
<bean id="demo2" class="com.oak.junit.day01.DemoBeanFactory"
factory-method="staticDemoBean"></bean> <!-- 先实例化工厂类 -->
<bean id="demoBeanFactory" class="com.oak.junit.day01.DemoBeanFactory"></bean>
<!-- 实例工厂实例化 class为工厂类 factory-bean指定工厂类 factory-method为实例工厂方法 -->
<bean id="demo3" factory-bean="demoBeanFactory"
factory-method="constructorDemoBean"></bean>
</beans>
测试:
@Test
public void testCtx() {
//实例化Spring容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
//取出demo1
Demo demo1=ctx.getBean("demo1",Demo.class);
System.out.println(demo1); //取出demo2
Demo demo2=ctx.getBean("demo2",Demo.class);
System.out.println(demo2); //取出demo2
Demo demo3=ctx.getBean("demo3",Demo.class);
System.out.println(demo3);
}
文章转载至:https://blog.csdn.net/qq_34598667/article/details/83246492
Spring:Spring-IOC实例化bean的常用三种方式的更多相关文章
- Spring学习(五)-----注入bean属性的三种方式( 1: 正常的方式 2: 快捷方式 3: “p” 模式)
在Spring中,有三种方式注入值到 bean 属性. 正常的方式 快捷方式 “p” 模式 看到一个简单的Java类,它包含两个属性 - name 和 type.稍后将使用Spring注入值到这个 b ...
- 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比
[原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...
- spring中创建bean对象的三种方式以及作用范围
时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...
- Spring的依赖注入(DI)三种方式
Spring依赖注入(DI)的三种方式,分别为: 1. 接口注入 2. Setter方法注入 3. 构造方法注入 下面介绍一下这三种依赖注入在Spring中是怎么样实现的. 首先我们需要以下几个 ...
- Solon 开发,四、Bean 扫描的三种方式
Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...
- 【Spring】Spring之向 IOC 容器注入对象的三种方式
关于Spring的搭建可参见:浅析Spring框架的搭建.在测试之前还是应该先将环境配置好,将相关Jar包导进来.Spring创建的对象,默认情况下都是单例模式,除非通过scope指定. 向IOC容器 ...
- 【spring】 SpringMVC返回json数据的三种方式
配置方法一 **1.导入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar. 2.spring配置文件添加** & ...
- Spring AOP编程(二)-AOP实现的三种方式
AOP的实现有三种方式: l aop底层将采用代理机制进行实现. l 接口 + 实现类 :spring采用 jdk 的动态代理Proxy. l 实现类: ...
- ios多线程开发的常用三种方式
1.NSThread 2.NSOperationQueue 3.GCD NSThread: 创建方式主要有两种: [NSThread detachNewThreadSelector:@selector ...
随机推荐
- Centos 7 进入单用户模式更改root密码方法
进入单用户模式的方法 方法一: 1.开机进入grub菜单的时候上下选择,按e编辑. 到linux16所在行的最后面. ro 只读文件系统 biosdevname=0 戴尔的服务器需要设置 net.if ...
- mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 ,事务日志. 修改配置或者想要使配置永久生效需将内容写入配置文 ...
- shell基础之变量及表达式
本节内容 1. shell变量简介 2. 定义变量 3. 使用变量 4. 修改变量的值 5. 单引号和双引号的区别 6. 将命令的结果赋值给变量 7. 删除变量 8. 变量类型 9. 特殊变量列表 1 ...
- 11.6 mpstat:CPU信息统计
mpstat 是Multiprocessor Statistics的缩写,是一种实时系统监控工具.mpstat命令会输出CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CP ...
- flink-cdc读取postgres报异常,没有发布表
异常信息 must be superuser to create FOR ALL TABLES publication 必须是超级用户才能为所有发布表创建 网上搜索了一天,都毫无头绪,后面搜索到了一个 ...
- 大数据学习之路——MySQL基础(一)——MySQL的基础知识与常见操作
一.存储引擎 1.含义 存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引 ...
- 有关RootViewController设置的问题和Unbalanced calls to begin/end appearance transitions for <CYLTabbarController>
问题 今天做项目时遇到了一个问题,我想做一个登陆页面,在用户输入了登录名和密码后跳转到app主界面,最开始用的是在方法中新建一个appdelegate对象,再将其中的window属性设置Tabbar为 ...
- Google I/O 2021 Android精华内容
Google I/O 2021结束了, 都有什么精彩内容呢? Android部分的Playlist附上: Android & Play at Google I/O 2021 Developer ...
- Idea项目上传到gitlab(以新建项目为例)
1.首先,需要你自己登录GitLab,并新建一个项目的链接,如下图所示: 图一: 图二: 图三(idea上传时用到此链接): 2.在idea上新建一个demo项目,创建一个Git仓库: 3.点击创建后 ...
- pika详解(四) channel 通道
pika详解(四) channel 通道 本文链接:https://blog.csdn.net/comprel/article/details/94662394 版权 channel通道 通道 ...