1.无参构造方法实例化(详见我的博客)
2.工厂静态方法实例化
创建StaticFactory类

public class StaticFactory {
public static UserDao getUserDao(){
return new UserDaoImpl();
}
}

UserDaoImpl类

public class UserDaoImpl implements UserDao {

    public UserDaoImpl(){
System.out.println("UserDaoImpl被创建了");
} @Override
public void save() {
System.out.println("save running...");
}
}

配置applicationContext.xml文件
告诉spring使用什么实例化

<?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="userDao" class="com.hao.dao.impl.UserDaoImpl" ></bean>--> <bean id="userDao" class="com.hao.factory.StaticFactory" factory-method="getUserDao"></bean>
</beans>

其中的class是静态类的全限定类名,factory-method是静态类中的方法名,因为该类是静态的,所以不需要创建该类对象,直接调用即可
然后测试

public class SpringTest {

    @Test
//测试scope属性
public void test1(){
ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao1 = (UserDao) app.getBean("userDao");
System.out.println(userDao1);
}
}


3.工厂实例方法实例化
创建工厂类DynamicFactory

public class DynamicFactory {
public UserDao getUserDao(){
return new UserDaoImpl();
}
}

application的配置

<?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"> <!-- 让spring先创建factory工厂对象-->
<bean id="factory" class="com.hao.factory.DynamicFactory"></bean>
<!-- 配置userDao的唯一标识id,factory-bean表示我要找这个factory工厂,然后找到找到getUserDao方法-->
<bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>
</beans>

Spring配置文件-Bean实例化的三种方式的更多相关文章

  1. Spring中bean实例化的三种方式

    之前我已经有好几篇博客介绍Spring框架了,不过当时我们都是使用注解来完成注入的,具体小伙伴可以参考这几篇博客(Spring&SpringMVC框架案例).那么今天我想来说说如何通过xml配 ...

  2. 【Spring】的【bean】管理(XML配置文件)【Bean实例化的三种方式】

    Bean实例化的三种方式 说明:通过配置文件创建对象就称为Bean实例化. 第一种:使用类的无参构造创建(重点) 实体类 package com.tyzr.ioc; public class User ...

  3. Spring bean管理器 bean实例化的三种方式

    bean实例化的三种方式实现 第一种:使用类的无参数构造方法创建(常用 重要) 第一种实例化方式最常用,实例化类时会通过调用无参构造方法创建.示例代码如下: package spring.com.Us ...

  4. 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比

    [原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...

  5. spring学习(03)之bean实例化的三种方式

    bean实体例化的三种方式 在spring中有三中实例化bean的方式: 一.使用构造器实例化:(通常使用的一个方法,重点) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化 第一种.使用构 ...

  6. Bean实例化的三种方式

    1. 构造器实例化 spring容器通过bean对应的默认的构造函数来实例化bean. 2. 静态工厂方式实例化 首先创建一个静态工厂类,在类中定义一个静态方法创建实例. 静态工厂类及静态方法: pu ...

  7. spring bean实例化的三种方式

    一.使用类的无参构造创建 配置文件 java代码 注意若类里面没有无参的构造,则会出现异常 二.使用静态工厂创建 配置文件 java代码 Factory类 测试类 结果 三.使用实例工厂 配置文件 1 ...

  8. spring中创建bean对象的三种方式以及作用范围

    时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...

  9. Solon 开发,四、Bean 扫描的三种方式

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

随机推荐

  1. Centos8 Yum 安装Nginx指定版本

    查看系统和EPEL的nginx版本   dnf info nginx 通过官方 yum 源安装nginx       vi /etc/yum.repos.d/nginx.repo 列出所有版本    ...

  2. 使用 AHK 在 VS Code 中根据上下文自动切换输入法状态

    平常在VS Code打公式,中英文切换一直狂点 Shift 手都快按断了,于是试图用 AutoHotKey 搞一些自动切换输入法程序,让它根据当前输入环境自动切输入法. 之前在网上搜到的是切换键盘的( ...

  3. kali linux 更换国内源报GPG error解决办法

    wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add

  4. HamsterBear 构建可启动的镜像(更新中)

    HamsterBear 构建可启动的镜像 Allwinner SoC 上电后会执行BootROM中的程序,会依次从SDIO,SPI等接口查询可引导的设备, SPI设备具有最低引导权,若无法查询到可引导 ...

  5. Linux环境下安装配置JDK1.8

    最近在搞虚拟机,记录下虚拟机内java环境的搭建流程 一.下载合适版本的jdk 此处选择JDK1.8,各位同学可以根据自己的需求选择对应的版本,下载地址为: https://www.oracle.co ...

  6. 空顺序表的实现(基于c语言)

    书中对于创建一个空线性表的定义如下: struct SeqList{ int MAXNUM; // 顺序表中最大元素的个数(也就是最多多少个元素),(其实MAXNUM也可以定义在外面) int n; ...

  7. Java的http post请求01之HttpURLConnection

    package com.ricoh.rapp.ezcx.iwbservice.webservice; import java.io.BufferedOutputStream; import java. ...

  8. AD2019(Altium designer)常用快捷键,使用技巧

    测量工具 测量距离:Ctrl+M, 删除测量结果:shift+C, 退出测量:多次右键 设置栅格 G或Ctrl+G 3D查看 按住shift键,再按住鼠标右键移动鼠标,即可在任意角度查看PCB的3D效 ...

  9. 如何获取 topic 主题的列表?

    bin/kafka-topics.sh --list --zookeeper localhost:2181

  10. springMVC和struts2的区别有哪些?

    (1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilte ...