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.测试结果

![](https://img2020.cnblogs.com/blog/2069956/202111/2069956-20211126100743843-366255724.png)

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实例化三种的方式的更多相关文章

  1. spring Bean的三种配置方式

    Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...

  2. spring Bean的三种注入方式

    1.构造函数注入: 构造函数的注入方式分为很多种 (1)普通构造函数,空参数的构造函数 <bean id="exampleBean" class="examples ...

  3. spring bean的三种管理方式·

    1.无参构造函数 1.xml文件配置内容 <!--无参构造函数--> <bean id="bean1" class="com.imooc.ioc.dem ...

  4. Spring三 Bean的三种创建方式

    创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring ...

  5. Spring IOC以及三种注入方式

    IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...

  6. Spring IOC 中三种注入方式

    项目错误知识点记录 正文 最近在项目的时候,用到Spring框架,Spring框架提供了一种IOC的自动注入功能,可以很轻松的帮助我们创建一个Bean,这样就省的我们四处写new Object()这样 ...

  7. Spring boot 集成三种拦截方式

    三种拦截方式分别为: javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.aspectj.lang. ...

  8. Spring boot 集成三种定时任务方式

    三种定时任务方式分别为 org.springframework.scheduling.annotation.Scheduled java.util.concurrent.ScheduledExecut ...

  9. Spring常用的三种注入方式

    好文要收藏,摘自:https://blog.csdn.net/a909301740/article/details/78379720 Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入 ...

  10. Spring:Spring-IOC三种注入方式、注入不同数据类型

    一.Spring IOC(依赖注入的三种方式): 1.Setter方法注入 package com.jpeony.spring.setter; import com.jpeony.spring.com ...

随机推荐

  1. 华为云 OpenTiny 跨端、跨框架企业级开源组件库项目落地实践直播即将开启!

    大家好,我是 Kagol,公众号:前端开源星球. "你们这个产品怎么只能在电脑上适配呀?我想在手机上看都不行,太麻烦了!!" "你们这个产品看起来太简单了,我想要@@功能 ...

  2. Midjourney 提示词工具(10 个国内外最好最推荐的)

    Midjourney,是一个革命性的基于人工智能的艺术生成器,可以从被称为提示的简单文本描述中生成令人惊叹的图像.Midjourney已经迅速成为艺术家.设计师和营销人员的首选工具(包括像我这样根本不 ...

  3. 3.1 JAVA方法:

    JAVA方法: 何为方法 方法是语句的集合,这个集合执行一个功能 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 java全是值传递 方法的定义和调用 方法的定义: 修饰符 返回类型 方法 ...

  4. 2.JAVA入门基础知识

    数据类型: java的数据类型分为两大类:基本类型和引用类型 基本类型: 整数类型: byte 一个字节 -128-127 short 2个字节 32768-32767 int 4个字节 很大 lon ...

  5. 飞腾CPU FT-2000/4 uboot下PHY调试记录

    飞腾爱好者技术交流群码公众号"乌拉大喵喵" 一.环境说明 板子是FT-2000/4的开发板: 固件版本: ft-2004c_u-boot-v2-Ver0.3_20211223100 ...

  6. [C++项目] 职工管理系统

    文章目录 职工管理系统 1.管理系统需求 2.创建项目 2.1 创建项目 2.2 添加文件 3.创建管理类 3.1创建文件 3.2 头文件实现 3.3 源文件实现 4.菜单功能 4.1 添加成员函数 ...

  7. java优先队列PriorityQueue

    文章目录 前言 PriorityQueue 优先队列 java中优先队列的声明 按优先级排序 常见方法 private void grow(int minCapacity) public boolea ...

  8. Go坑:time.After可能导致的内存泄露问题分析

    Go 中 time.After 可能导致的内存泄露 一.Time 包中定时器函数 go v1.20.4 定时函数:NewTicker,NewTimer 和 time.After 介绍 time 包中有 ...

  9. 百度飞桨(PaddlePaddle)-数字识别

    手写数字识别任务 用于对 0 ~ 9 的十类数字进行分类,即输入手写数字的图片,可识别出这个图片中的数字. 使用 pip 工具安装 matplotlib 和 numpy python -m pip i ...

  10. 2023-04-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j 给定一个二维数组orders,长度为M, orders[i][0]代表i

    2023-04-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j 给定一个二维数组orders,长度为M, orders[i][0]代表i ...