11、组件注册-使用FactoryBean注册组件

package org.springframework.beans.factory;

import org.springframework.lang.Nullable;

public interface FactoryBean<T> {

	@Nullable
T getObject() throws Exception; @Nullable
Class<?> getObjectType(); default boolean isSingleton() {
return true;
} }

11.1 实现FactoryBean接口

package com.hw.springannotation.beans;

import org.springframework.beans.factory.FactoryBean;

/**
* @Description 创建Spring 工厂bean
* @Author hw
* @Date 2018/11/28 16:32
* @Version 1.0
*/
public class ColorFactoryBean implements FactoryBean<Color> { /**
* 返回一个color对象 ,这个对象会被添加到容器中
*
* @return
* @throws Exception
*/
public Color getObject() throws Exception {
System.out.println("ColorFactoryBean……");
return new Color();
} /**
* 返回Color对象的类型
*
* @return
*/
public Class<?> getObjectType() {
return Color.class;
} /**
* 控制是否单例
*
* @return true 单实例 false 多实例
*/
public boolean isSingleton() {
return true;
}
}

11.2 MainConfig注入ColorFactoryBean

@Bean
public ColorFactoryBean colorFactoryBean() {
return new ColorFactoryBean();
}

11.3 测试

    @Test
public void testImport() {
printBeans();
// System.exit(0); // 工厂bean调用的是 getObject创建的对象
Object bean = applicationContext.getBean("colorFactoryBean");
Object bean2 = applicationContext.getBean("colorFactoryBean");
// 通过 & 前缀 获取工厂bean本身的对象
Object bean3 = applicationContext.getBean("&colorFactoryBean");
System.out.println(bean.getClass());
System.out.println(bean3.getClass());
System.out.println(bean == bean2);
}

11、组件注册-使用FactoryBean注册组件的更多相关文章

  1. Spring Framework 组件注册 之 FactoryBean

    Spring Framework 组件注册 之 FactoryBean 前言 前两篇文章介绍了如何使用@Component,@Import注解来向spring容器中注册组件(javaBean),本文将 ...

  2. 进程外组件通信之免注册com通信【原创】

    最近在搞进程外组件通信的东西,写了个demo,免注册的,一直没调通,其实就是两个问题卡了好几天,也没找到有用的资料,试了好几天终于才解决,现简单记录下来,免得大家跟我走一样的弯路.下面com端程序名称 ...

  3. BBS-基于forms组件和ajax实现注册功能

    http://www.cnblogs.com/yuanchenqi/articles/7638956.html 1.设计注册页面 views.py from django import forms c ...

  4. 3- 功能2:基于forms组件和ajax实现注册功能

    1.forms组件的注册页面 url from django.urls import path, re_path from blog import views from django.views.st ...

  5. Vue.js 2.x:组件的定义和注册(详细的图文教程)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 什么是组件 组件: 组件的出现,就是为了拆分Vue实例的代码量的, ...

  6. vue组件局部与全局注册的区别

    //局部注册 var mycomponent = new extend({        <!--Vue.extend()是Vue构造器的扩展,调用Vue.extend()我们将创建一个组件构造 ...

  7. Knockout.js组件系统的详解之(一) - 组件的定义和注册

    (Knockout版本:3.4.1 ) KO的组件主要从以下四个部分进行详细介绍: 1.组件的定义和注册 2.组件绑定 3.使用自定义元素 4.自定义组件加载器(高级) 目录结构 1.通过" ...

  8. 2.1博客系统 |基于form组件和Ajax实现注册登录

    基于forms组件和Ajax实现注册功能 1 基于forms组件设计注册页面 --点击头像 === 点击input --头像预览: 修改用户选中的文件对象:获取文件对象的路径:修改img的src属性, ...

  9. 基于forms组件和Ajax实现注册功能

    一.基于forms组件的注册页面设计 1.运用forms组件的校验字段功能实现用户注册 views.py:    (在钩子中代码解耦,将form放在cnblog/blog/Myforms.py中) f ...

随机推荐

  1. MySQL 新建用户,为用户授权,指定用户访问数据库

    1.登录MySQL mysql -u root -p 2.添加新用户(允许所有ip访问) create user 'test'@'*' identified by '123456';(test:用户名 ...

  2. python笔记007-函数

    昨日简要: 1.文件操作: 1.1获得句柄: f = open(‘one.txt’,mode=’’,encoding=’utf-8’) f = open(‘../’) à返回上一层 f = open( ...

  3. python之SQLite笔记

    sqlite3 打开文件并创建游标 conn = sqlite3.connect('adressbook.db')c = conn.cursor() 连接对象:sqlite3.connect('数据文 ...

  4. 怎样理解script标签的defer属性和async属性

    如果script标签是引用的外部js文件, 那就会有一个下载js文件这一过程, 为了不因为这个下载过程而阻塞页面解析与渲染, 我们需要一种机制来解决这一问题, 方法之一就是使用 defer和async ...

  5. WebAPI 笔记

    一.基本配置 1. 全局配置 Global.asax public class WebApiApplication : System.Web.HttpApplication { protected v ...

  6. Linux 命令实战

    命令登录 ssh  UserName@RemoteIP ssh  seemmo@192.168.0.1 统计文件.目录的数量 统计当前目录下文件数量:ls  -l  |  grep  "^- ...

  7. opencv 加载pb

    1.错误1         Tensor's data type is not supported the type of Mul  is DF_Float 2.  错误2 type == " ...

  8. Java中常见时间类的使用

    模拟场景针对于常用的操作API,比如流操作(字符流.字节流),时间操作等,仅仅了解概念性的定义终究是无法了解该类的用途和使用方式:这种情况在使用的时候便一脸茫然,脑海中映射不到对应的知识点.本篇博客将 ...

  9. FlowPortal BPM流程中调用封装好的API如何调试

    遇到复杂一点的业务,我们常常都会将业务逻辑封装到一个dll中,在流程中调用封装好的API. 业务逻辑库封装到企业库后,是可以在Visual Studio中调试库的哦. [附加到进程] [流程中调用AP ...

  10. vue拦截

    ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' import ...