给spring容器中注册bean组件的几种方法

  1. 在xml文件中添加包扫描,然后在需要注册的组件上标注注解

    @Controller @Service @Repository @Component

  2. 使用@Bean 注解导入第三方包里的组件

@Bean("win")
public Student student03(){
   return new Student("window", 100);
}
  1. 注解@Import,快速给容器中导入一个组件
    看一下这个注解的源码,参数是一个Class类型的数组,分为以下三种情况
    在这里插入图片描述1). @Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名
    在这里插入图片描述
    2).参数传入ImportSelector的实现类:返回需要导入的组件的全类名数组;
public class MyImportSelector implements ImportSelector {
	//方法的返回值就是要导入容器中的组件,
	//参数表示当前标注@Import注解的类的所有注解信息
	public String[] selectImports(AnnotationMetadata importingClassMetadata) {
		//方法不要返回null,会报空指针异常
		return new String[]{"com.xw.bean.Share"};
	}
}

在这里插入图片描述
3). ImportBeanDefinitionRegistrar:实现这个接口,手动注册bean到容器中

public class NyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
	public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
		boolean beanDefinition = registry.containsBeanDefinition("win");
		if (beanDefinition) {    
		   //Register是自己定义的类
			RootBeanDefinition definition = new RootBeanDefinition(Register.class);
			registry.registerBeanDefinition("registBean", definition);
		}
	}
}

在这里插入图片描述4. 使用Spring提供的 FactoryBean(工厂Bean)
1)、默认获取到的是工厂bean调用getObject创建的对象
2)、要获取工厂Bean本身,我们需要给id前面加一个&
&colorFactoryBean

public class ColorFactory implements FactoryBean<Color>{

	//返回一个对象,这个对象会添加到容器中
	public Color getObject() throws Exception {
		System.out.println("Object...");
		return new Color();
	}

	public Class<?> getObjectType() {
		return Color.class;
	}

	//判断是单例吗
	public boolean isSingleton() {
		return true;
	}
	}
Spring框架Bean是指由Spring容器管理的对象。这些对象通常是应用程序的核心组件,如服务、数据访问对象、控制器等。Spring容器会负责创建、配置、初始化和管理这些Bean,以确保应用程序的正常运行。 Spring容器Bean可以分为以下几种类型: 1. Singleton Bean:单例Bean,即在整个应用程序只存在一个实例的Bean,由Spring容器负责创建和管理。 2. Prototype Bean:原型Bean,即每次请求都会创建一个新的实例的Bean,由Spring容器负责创建,但需要手动管理Bean的生命周期。 3. Request Bean:请求Bean,即每个HTTP请求都会创建一个新的实例的Bean,由Spring MVC框架负责创建和管理。 4. Session Bean:会话Bean,即每个HTTP会话都会创建一个新的实例的Bean,由Spring Session框架负责创建和管理。 5. Global Session Bean:全局会话Bean,即在基于Portlet的Web应用程序,每个用户会话都会创建一个新的实例的Bean,由Spring Portlet MVC框架负责创建和管理。 Spring容器Bean可以通过XML配置、注解或Java配置来定义。通过XML配置定义Bean需要在XML文件显式地指定Bean的类名、属性和依赖项;通过注解定义Bean需要在Bean类上添加相应的注解,如@Component、@Service、@Controller等;通过Java配置定义Bean需要编写Java类来指定Bean的类名、属性和依赖项。无论是哪种方式,Spring容器都会在应用程序启动时自动扫描并创建这些Bean。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值