Spring-Bean实例化三种的方式
Bean实例化三种方式
- 无参构造实例化(重点)
- 工厂静态方法实例化
- 工厂实例方法实例化
工厂静态方法实例化
1.编写接口
package com.my;
public interface UserDao {
public void save();
}
2.接口实现方法
public class UserDaoImpl implements UserDao {
public UserDaoImpl() {
System.out.println("UserImpl创建.....");
}
public void init(){
System.out.println("初始化方法.....");
}
public void destory(){
System.out.println("销毁方法");
}
public void save() {
System.out.println("save running.....");
}
}
3.创建静态工厂
public class StaticFactory {
public static UserDao getUserDao(){
return new UserDaoImpl();
}
}
3.编写配置文件
<bean id="UserDao" class="com.my.factory.StaticFactory" factory-method="getUserDao"></bean>
4.测试
public class UserDemo {
@Test
public void mytest(){
ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao1 = (UserDao) application.getBean("UserDao");
System.out.println(userDao1);
}
}
5.测试结果

6.测试动态
1.编写测试类
public class DynamicFactory {
public UserDao getUserDao() {
return new UserDaoImpl();
}
}
2.编写测试文件
<bean id="factory" class="com.my.factory.DynamicFactory"></bean>
<bean id="UserDao" factory-bean="factory" factory-method="getUserDao"></bean>
3.写结果

Spring-Bean实例化三种的方式的更多相关文章
- spring Bean的三种配置方式
Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...
- spring Bean的三种注入方式
1.构造函数注入: 构造函数的注入方式分为很多种 (1)普通构造函数,空参数的构造函数 <bean id="exampleBean" class="examples ...
- spring bean的三种管理方式·
1.无参构造函数 1.xml文件配置内容 <!--无参构造函数--> <bean id="bean1" class="com.imooc.ioc.dem ...
- Spring三 Bean的三种创建方式
创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring ...
- Spring IOC以及三种注入方式
IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...
- Spring IOC 中三种注入方式
项目错误知识点记录 正文 最近在项目的时候,用到Spring框架,Spring框架提供了一种IOC的自动注入功能,可以很轻松的帮助我们创建一个Bean,这样就省的我们四处写new Object()这样 ...
- Spring boot 集成三种拦截方式
三种拦截方式分别为: javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.aspectj.lang. ...
- Spring boot 集成三种定时任务方式
三种定时任务方式分别为 org.springframework.scheduling.annotation.Scheduled java.util.concurrent.ScheduledExecut ...
- Spring常用的三种注入方式
好文要收藏,摘自:https://blog.csdn.net/a909301740/article/details/78379720 Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入 ...
- Spring:Spring-IOC三种注入方式、注入不同数据类型
一.Spring IOC(依赖注入的三种方式): 1.Setter方法注入 package com.jpeony.spring.setter; import com.jpeony.spring.com ...
随机推荐
- 重新实现hashCode()方法
在Java中,为了让对象在集合中能够更高效地进行查找和比较,我们通常需要重写对象的equals()和hashCode()方法.其中,equals()方法用于比较两个对象是否相等,而hashCode() ...
- 安装kafka和zookeeper以及使用
1.安装zookeeper zookeeper下载:http://zookeeper.apache.org/releases.html 从3.5.5开始,带有bin名称的包才是要下载的包可以直接使用 ...
- P5356 [Ynoi2017] 由乃打扑克
md调了5h才调出来恶心坏了没想到这么快就做了第二道Ynoi 据说这题其实不卡常 屠龙宝刀点击就送 题面也很清楚,给定两种操作,一种是区间加,一种是询问区间内第 k 小的数的值是多少. 对于区间加,在 ...
- Swift WisdomProtocol 面向协议编程(下)
WisdomProtocol 面向协议编程(下) @[TOC] WisdomProtocol SDK 面向协议编程 # Welcome to use WisdomProtocol WisdomProt ...
- OpenAI CLIP 关键点 - 连接图像和文字
标签: #CLIP #Image2Text #Text2Image #OpenAI 创建时间:2023-04-21 00:17:52 基本原理 CLIP是一个图像分类模型. 准备训练数据:准备大量的文 ...
- pytest—添加日志
开头 保存工作中常用的日志. pytest有自己的日志管理的开关,不需要用到python的日志库 开始 在文件根目录下新建一个pytest.ini文件 基本设置 [pytest] log_cli=tr ...
- flask接口参数校验 jsonschema 的使用
开头 flask接口开发中参数校验可以用到的方法有很多,但是我比较喜欢跟前端的js检验类似,故选用到了 jsonschema 这个参数校验的库 Demo 下面是一个比较全的参数校验的接口,日后方便参考 ...
- 2022-10-03:给定一个正数n,比如6 表示数轴上有 0,1,2,3,4,5,6 <0 或者 >6 的位置认为无法到达 给定两个数字x和y,0<= x,y <= n 表示小人一开始在x的位置,它
2022-10-03:给定一个正数n,比如6 表示数轴上有 0,1,2,3,4,5,6 <0 或者 >6 的位置认为无法到达 给定两个数字x和y,0<= x,y <= n 表示 ...
- 2021-10-15:单词拆分。给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你
2021-10-15:单词拆分.给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词.说明:拆分时可以重复使用字典中的单词.你 ...
- 【重学C++】02 脱离指针陷阱:深入浅出 C++ 智能指针
文章首发 [重学C++]02 脱离指针陷阱:深入浅出 C++ 智能指针 前言 大家好,今天是[重学C++]系列的第二讲,我们来聊聊C++的智能指针. 为什么需要智能指针 在上一讲<01 C++如 ...