springboot项目注册Bean的多种方法总结

springboot注册Bean的多种方法总结

先上总结:
1.@ComponentScan结合@Component
2.@Bean
3.@Import
4.@ImportResource

来,结合用例体验一下
首先我们创建一个java bean:

@Data
@ToString
public class House {
    private Integer id;
    private  String name;
    private  String address;
}

1.使用@ComponentScan结合@Component注册bean

我们只需要用@ComponentScan注解告诉spring我们要扫描的路径,在需要注入spring的类上添加@Component注解告诉spring这是一个组件,就可以将该组件注册到容器中:

在类上标注@Component:
在这里插入图片描述
在启动类上加@ComponentScan并获取该bean对象:
在这里插入图片描述结果:
在这里插入图片描述
此处注意两点:
1.springboot不标识@ComponentScan,默认扫描启动类同级目录以及子目录,所以在此处我配置的@ComponentScan实际是冗余的,所以报红
2.@Component标注在类上,注入容器中默认的bean id为首字母小写的类名


2.使用@Bean注册bean

创建一个配置类,类上标注@Configuration告诉spring这是个注解类,再用@Bean注解方法产生bean对象交给spring管理
在这里插入图片描述
-此处的方法名就是bean id,返回值就是我们要交给spring管理的类-

尝试获取bean:
在这里插入图片描述结果:
在这里插入图片描述


3.@Import注册Bean

创建一个配置类,类上标注@Configuration告诉spring这是个注解类,再用@Import注解类告诉spring要注册的类:
在这里插入图片描述
-此处也是默认使用首字母小写的类名作为bean id-

我们再来getbean看看:
在这里插入图片描述结果:
在这里插入图片描述


4.@ImportResource

这种方法实际上是通过读取xml文件来配置bean,首先我们定义一个bean.xml,并在其中定义bean:
在这里插入图片描述然后我们创建一个配置类,类上标注@Configuration告诉spring这是个注解类,再用@ImportResource注解类,并告诉spring我们需要读取的xml文件位置:

在这里插入图片描述再来获取一下注册的bean,查看结果:
在这里插入图片描述结果:

在这里插入图片描述

以上就是四种springboot项目中向spring容器注册bean的方法,下次介绍向bean中注入依赖的方法,散会~

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot提供了多种方式来注册bean,其中一种是手动注册bean。具体步骤如下: 1. 创建一个Java类,用于定义要注册bean。 2. 在该类上添加注解@Component或其他相关注解,以便Spring Boot能够扫描到该类。 3. 在该类中定义一个方法,用于创建要注册bean。 4. 在该方法上添加注解@Bean,以便告诉Spring Boot方法返回的对象应该被注册为一个bean。 5. 在需要使用该bean的地方,使用@Autowired或其他相关注解将该bean注入到目标类中。 需要注意的是,手动注册bean需要在Spring Boot启动时进行,可以通过在启动类中添加注解@Import来引入要注册bean类。 ### 回答2: 在Spring Boot中,可以通过手动注册bean的方式来将自定义的类纳入Spring容器管理。 首先,我们需要在一个配置类中添加`@Configuration`注解,将其声明为配置类。然后,使用`@Bean`注解来标记一个方法,该方法的返回值将作为一个Spring bean进行注册。 下面是一个示例: ```java @Configuration public class MyConfiguration { @Bean public MyBean myBean() { return new MyBean(); } // 其他自定义配置及bean的注册方法 } ``` 在上述示例中,`MyConfiguration`类被声明为一个配置类,并且通过`@Bean`注解将`myBean()`方法返回的实例注册为一个Spring bean。 需要注意的是,被手动注册bean可以被其他组件自动注入或通过`@Autowired`注解来获取。 除了使用上述方式手动注册bean,Spring Boot还提供了其他的方式来注册bean,例如使用`@ComponentScan`、`@Import`、`@ImportResource`等注解,或者实现`ImportBeanDefinitionRegistrar`、`BeanFactoryPostProcessor`等自定义接口。 总的来说,Spring Boot中手动注册bean的方式很灵活,可以根据实际需求选择最适合的方式进行注册。 ### 回答3: 在Spring Boot中手动注册bean可以通过编写配置类(Configuration Class)来实现。 首先,创建一个配置类,可以使用`@Configuration`注解进行标记。在配置类中,可以使用`@Bean`注解来定义需要注册bean。例如: ```java @Configuration public class MyConfiguration { @Bean public MyBean myBean() { return new MyBean(); } // 可以同时定义多个bean // ... } ``` 上述例子中,`myBean()`方法使用`@Bean`注解定义了一个`MyBean`类的实例,然后在应用中就可以通过自动装配或者手动获取来使用该bean了。 接下来,需要在Spring Boot应用的主类上使用`@Import`注解来引入该配置类。例如: ```java @SpringBootApplication @Import(MyConfiguration.class) public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 上述例子中,`@Import`注解将`MyConfiguration`配置类引入到应用中,这样在启动应用时,定义的bean就会被注册Spring容器中。 需要注意的是,手动注册bean一般适用于一些特殊情况,不推荐频繁使用该方法,因为Spring Boot已经提供了自动配置的功能,可以根据约定和配置进行自动注册bean,可以更好地减少开发工作量和提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值