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中注入依赖的方法,散会~