spring在启动时会自己把bean(java组件)注册到ioc容器里,实现控制反转,在开发人员使用spring开发应用程序时,你是看不到new关键字的,所有对象都应该从容器里获得,它们的生命周期
在放入容器时已经确定!
三种注册bean的方法:
- @ComponentScan
- @Bean
- @Import
一、@ComponentScan注册指定包里的bean(找到指定路径下,指定注解的类,注册到IOC容器中)
Spring容器会扫描@ComponentScan配置的包路径,找到标记@Component注解的类加入到Spring容器。
我们经常用到的类似的(注册到IOC容器)注解还有如下几个:
- @Configuration:配置类
- @Controller :web控制器
- @Repository :数据仓库
- @Service:业务逻辑
二、@Bean注解直接注册(与@Configuration一起使用,用来实现JavaConfig的配置Bean,注册到IOC容器中)
注解@Bean被声明在方法上,方法都需要有一个返回类型,而这个类型就是注册到IOC容器的类型,接口和类都是可以的,介于面向接口原则,提倡返回类型为接口。
三、@Import注册Bean
这种方法最为直接,直接把指定的类型注册到IOC容器里,成为一个java bean,可以把@Import放在程序的八口,它在程序启动时自动完成注册bean的过程。
@Import({ LogService.class,PrintService.class })
public class RegistryBean {
// 把LogService类和PrintService类注册到容器
}