Spring——往容器中注册组件的方法总结

1、通过配置类的包扫描(@Configuration @ComponentScan)+给组件标注注解(@Component @Service @Controller...)

2、通过@Bean在配置类中加入组件

特点:使用第三方组件时可以不用更改第三方代码。

3、@Import

1)在配置类中使用@Import可以直接导入组件,容器会自动注册,id默认全类名

2)ImportSelect:实现这个接口,通过接口提供的selectImports方法返回并注册全类名数组中的类,再给容器中注册ImportSelect接口实现类即可

3)ImportBeanDefinitionRegistrar:实现这个接口,通过接口中的registerBeanDefinitions方法注册类并可自定义类名,最后给容器中注册ImportBeanDefinitionRegistrar接口实现类

4、实现FactoryBean接口,实现以下三个方法,最后给容器中注册FactoryBean接口实现类

T getObject() throws Exception;
Class<?> getObjectType();
boolean isSingleton();

原文地址:https://www.cnblogs.com/Unicron/p/12333628.html

时间: 2024-11-07 02:16:43

Spring——往容器中注册组件的方法总结的相关文章

@Configuration和@bean给容器中注册组件

spring容器中注册组件的两种方式: xml配置文件方式 注解方式 1.xml配置文件方式 编写bean类 使用xml文件配置bean注入到spring容器 通过ClassPathXmlApplicationContext类获取bean 1.1.编写bean类 package com.jcon.entity; /** * @author Jcon * @version V1.0 * @Description: (用户实体类) * @date 2019年01月28日 */ public clas

[翻译]Component Registration in Script System 在脚本系统中注册组件

Component Registration in Script System 在脚本系统中注册组件   To refer to our component from a script, the class, its properties and methods must first be registered in the script system. You may place the registration code in a file with the same name as the

如何选择STL容器中对象的删除方法

备注:唯一从容器中除去一个元素的方法是在那个容器上调用一个成员函数. 以下介绍删除不同类型的容器中满足某种条件的值的方法,某种条件指的是 bool badValue(int value)返回true的情况. 1.序列容器 for(SeqContainer<int>::iterator i = c.begin(); i != c.end(); /*nothing*/) { if(badValue(*i)) { //something to do i = c.erase(i); } else ++

spring IOC容器中装配Bean(XML)

——基于XML的配置 依赖注入 spring 依赖注入的方式有,属性注入和构造函数注入,还有不常用到的工厂方法注入. (1)属性注入 属性注入要求 Bean 提供默认的构造函数,并为需要的属性提供 set 方法,spring 先调用 Bean 的默认构造函数实例化 Bean 对象,然后通过反射的方法调用 set 方法注入属性值.如下简单的范例: public class Phone { private int id; private String name; private double pri

vue中注册组件

注册组件,其实就是自定义标签(一堆标签堆在一起去现实某一个功能,可以类似成方法去理解) 注册组件,有2种 1:全局注册(全局注册的组件可以在任意的vue实例中使用) 2:局部注册(局部注册的组件只能在当前的vue实例中使用) 例如: 全局组件: 注意:全局组件可以在任意的vue实例中使用,这样就可以实现代码的复用的好处了. 局部组件: 顾名思义:只能在当前注册它的vue实例中使用它. 注意:对于组件的命名,W3C规范是字母小写且包含一个短横杠'-'. 原文地址:http://blog.51cto

Spring 获取容器中的Bean

今天在用StringBoot 做异步推送项目的时候发现了一个问题,定义好的某个Bean无法通过applicatioContext.getBeansOfType. 找了一圈发现,这个Bean根本没有注入. 后来才发现定义的Bean忘记加@Component了.真是粗心大意害死人. 当你不知道这个Bean定义成什么好时,可以直接使用@Component,Spring会直接注入,一般情况下使用@Service @Mapper @Repository @Controller 某些情况下我们要获取 IOC

Spring IOC容器中注入bean

一.基于schema格式的注入 1.基本的注入方式 (属性注入方式) 根据setXxx()方法进行依赖注入,Spring只会检查是否有setter方法,是否有对应的属性不做要求 <bean id="student" class="com.lq.ioc.Student"> <property name="name" value="zhansan"></property> <propert

spring IOC 容器中 Bean 的生命周期

IOC 容器中 Bean 的生命周期: 1.通过构造器或工厂方法创建 Bean 实例2.为 Bean 的属性设置值和对其他 Bean 的引用3.调用 Bean 后置处理器接口(BeanPostProcessor),进行初始化前处理4.调用 Bean 的初始化方法5.调用 Bean 后置处理器接口(BeanPostProcessor),进行初始化后处理6.Bean 可以使用了7.当容器关闭时, 调用 Bean 的销毁方法8.在 Bean 的声明里设置 init-method 和 destroy-m

使得任何Bean在Spring IOC容器中可以访问request、session、global Session作用域,RequestContextListener

首先在web.xml配置 <web-app> ... <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> ... </web-app> 然后在你的Bean中获取request ... HttpServletRequest request = ((S