首页 > 其他分享 >Spring的FactoryBean

Spring的FactoryBean

时间:2022-10-16 17:00:06浏览次数:36  
标签:oxygen OrderDao Spring FactoryBean import public

Spring框架创建Java bean有三种方法

  • 无参构造方法
  • 静态工厂
  • 实例工厂

Spring里面的FactoryBean是对实例工厂的优化和增强。

本文展示Spring框架的FactoryBean接口的使用方法,采用xml文件配置的方式。

package com.oxygen.factory;

import com.oxygen.dao.OrderDao;
import com.oxygen.dao.impl.OrderDaoImpl;
import org.springframework.beans.factory.FactoryBean;

public class OrderDaoFactoryBean implements FactoryBean<OrderDao> {

    @Override
    public OrderDao getObject() throws Exception {
        return new OrderDaoImpl() ;
    }

    @Override
    public Class<?> getObjectType() {
        return OrderDao.class;
    }

    //返回值true表示使用单例模式
    //返回值false表示使用多例模式
    @Override
    public boolean isSingleton() {
        return true;
    }
}

 

Spring applicatin context的xml配置文件

<bean id="orderDao" class="com.oxygen.factory.OrderDaoFactoryBean"/>

 

测试:

package com.oxygen;

import com.oxygen.dao.OrderDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App2 {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        OrderDao orderDao = context.getBean("orderDao", OrderDao.class);
        orderDao.save();
    }
}

 

标签:oxygen,OrderDao,Spring,FactoryBean,import,public
From: https://www.cnblogs.com/majestyking/p/16796543.html

相关文章

  • SpringBoot 扩展性接口
    1.可扩展的接口启动调用顺序图​​org.springframework.beans.factory.xxx​​​​org.springframework.boot.xxx​​​​org.springframework.context.xxx​​ApplicationC......
  • Springboot 服务停止后执行方法
    importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.DisposableBean;importorg.springframework.context.annotatio......
  • SpringBoot整合ES查询
    springboot整个es有很多钟方法,比如TransportClient、RestClient、RestHighLevelClient、SpringData-Es、Elasticsearch-SQL等。ElasticSearch官方提供了3个Client,具体......
  • Spring Cloud Nacos(一)
    PropertySourceLocator加载原理SpringApplication.run在springboot项目启动时,有一个prepareContext的方法,它会回调所有实现了ApplicationContextInitializer的实例,来做......
  • Spring boot JDBC
    引入包 yml配置      @Repository表求该类是持久层依赖注入的对象    queryForObject查询单一一条记录。query查询多条记录  服务后端......
  • SpringBean的生命周期
    SpringBean的生命周期SpringBean的生命周期大体如下:Instantiation:实例化bean(完成构造器注入)依赖注入:属性(接口)注入,setter注入aware:beanName,beanFactory,app......
  • 83-springboot 多模块打包成jar
    主项目:<packaging>pom</packaging>打包配置: <!--指定使用maven打包--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <arti......
  • 一篇文章带你掌握主流办公框架——SpringBoot
    一篇文章带你掌握主流办公框架——SpringBoot在之前的文章中我们已经学习了SSM的全部内容以及相关整合SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架—......
  • 结合springboot条件注入@ConditionalOnProperty以及@ConfigurationProperties来重构优
    @ConditionalOnProperty实现按需注入bean短信工具类SmsUtilzhenghe-common是一个基础包。SmsUtil坐落在zhenghe-common里。先看看Smsutil的面目。packagecom.emax......
  • Spring的同一个服务为什么会加载多次?
    问题现象最近在本地调试公司的一个Web项目时,无意中发现日志中出现了两次同一个服务的init记录,项目都是基于Spring来搭建的,按理说服务都是单例的,应该只有一次服务加载日志......