往IOC 容器中添加组件的方式
通过@CompentScan +@Controller @Service @Respository @compent
适用场景: 针对我们自己写的组件可以通过该方式来进行加载到容器中。
通过@Bean的方式来导入组件(适用于导入第三方组件的类)
通过@Import来导入组件 (导入组件的id为全类名路径)
@Configuration
@Import(value = {Person.class, Car.class})
public class MainConfig {}
通过@Import 的ImportSeletor类实现组件的导入 (导入组件的id为全类名路径)
public class CustomImportSelector implements ImportSelector {/可以获取导入类的注解信息@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[]{"com.Custom.testimport.compent.Dog"};}
}
@Configuration
@Import(value = {Person.class, Car.class, CustomImportSelector.class})
public class MainConfig {}
通过@Import的 ImportBeanDefinitionRegister导入组件 (可以指定bean的名称)
public class CustomBeanDefinitionRegister implements ImportBeanDefinitionRegistrar {@Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {//创建一个bean定义对象RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Cat.class);//把bean定义对象导入到容器中registry.registerBeanDefinition("cat",rootBeanDefinition);}
}
@Configuration
//@Import(value = {Person.class, Car.class})
//@Import(value = {Person.class, Car.class, CustomImportSelector.class})
@Import(value = {Person.class, Car.class, CustomImportSelector.class, CustomBeanDefinitionRegister.class})
public class MainConfig {}
通过实现FacotryBean接口来实现注册 组件
package com.leon.testfactorybean;import org.springframework.beans.factory.FactoryBean;/*** 通过实现factoryBean接口往容器中注册组件 */
public class CarFactoryBean implements FactoryBean<Car> {@Overridepublic Car getObject() throws Exception {return new Car();}@Overridepublic Class<?> getObjectType() {return Car.class;}@Overridepublic boolean isSingleton() {return false;}
}
package com.leon.testfactorybean;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class MainClass {public static void main(String[] args) throws Exception {AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MainConfig.class);Object bean = ctx.getBean("carFactoryBean");System.out.println(bean);/* Object bean2 = ctx.getBean("&carFactoryBean");System.out.println(bean2);*/}
}
往IOC 容器中添加组件的方式相关推荐
- 六、spring之通过FactoryBean为ioc容器中添加组件
前面我们已经介绍了几种为容器中添加组件的方法,今天一起学习通过FactoryBean添加组件的方法. 首先我们准备一个类,也就是我们需要注册进spring的ioc容器中的类 类Color: // 不必 ...
- Spring5 - 向IOC容器中添加组件的4种方式
文章目录 概述 方式一: @CompentScan 适用场景 Code 方式二: @Bean 适用场景 Code 方式三: @Import 适用场景 Code Demo1 Code Demo2 + 实 ...
- Lumen开发:如何向 IoC 容器中添加自己定义的类
版权声明:本文为博主原创文章,未经博主允许不得转载. 先在起始文件bootstrap/app.php加上$app->register(App\Providers\User\UserService ...
- 往JScrollPane中添加组件时滚动条不出现的解决方法
往滚动条容器里添加容器,再往容器中添加组件,,当组件的大小超过滚动条的大小时,滚动条还不显现的解决办法. 滚动条容器,,在NEW的时候只能传一个容器进去..并且这个容器(zPanel)不需要设置大小. ...
- JScrollPane中添加组件时滚动条不出现或添加组件显示不全解决方案
问题: 往滚动条容器里添加容器,再往容器中添加组件,当组件的大小超过滚动条的大小时,滚动条还不显现的解决办法.滚动条容器,在NEW的时候只能传一个容器进去.并且这个容器(zPanel)不需要设置大小. ...
- spring注解开发:容器中注册组件方式
1.包扫描+组件标注注解 使用到的注解如下,主要针对自己写的类 @Controller @Service @Repository @Component @ComponentScan 参考 spring ...
- java se 动态添加视图组件_博为峰Java技术题 ——JavaSE Java Swing在顶层容器中添加菜单栏Ⅰ...
下面将讲述如何在顶层容器中添加菜单栏.下面将通过编写一段Swing程序代码来讲解如何在顶层容器中添加菜单栏.其代码如下: publicclassBWFSwingMenu { staticintwidt ...
- Spring容器中导入组件方式
1. componentscan包扫描+组件注解(@controller @service @ component ) 2. 在方法上添加@Bean id默认为方法名 3. @import ...
- 将Bean放入Spring容器中的五种方式
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/weixin_43741092/ article/details/120176466 将bean放 ...
最新文章
- java 投票算法_Boyer and Moore Fast majority vote algorithm(快速选举算法)
- JQuery DataTable的配置项及事件
- Leetcode每日一题:116.populating-next-right-pointers-in-each-node(填充每个节点的下一个右侧节点指针)
- 2种造成sqlserver自增列不连续的原因
- ReSharper卸载后Visual Studio的快捷键和智能提示消失
- weblogic 下载和安装
- 数据结构与算法笔记 二叉树、二叉搜索树、二叉平衡树的区分与关系
- 好用的小巧的免费功能强大的电脑截图软件Snipaste下载安装
- 【《机器学习》周志华学习笔记2.3.4】~模型评估与选择-代价敏感错误率与代价曲线
- 华为云HMS Core 助力鸿蒙开发
- GNS3 2.1.21详细安装教程
- 关于csgo的观看录像fps低_《CSGO》FPS低解决办法
- 基于MATLAB的人脸识别提纲
- 学习人工智能必读这30本书!
- ios 绕过 id 锁
- 音视频开发为什么要学SRS流媒体服务器
- bugku web18 秋名山车神
- python自动化办公书籍_2020年最新 Python自动化办公(资料完整)
- VS--无法迁移解决方案文件(解决办法)
- B2C购物商城系统定制优势_购物商城系统适用在哪?