在SpringBoot的实际使用中,基本上不再使用以前的xml配置,本文整理了声明bean的使用方式。
- 注解方式
在类上添加@Component, @Service等注解(@Controller表示提供http接口的bean, @Configuration表示配置类Bean)
添加上这种注解的类,会被Spring容器扫描加载,自动生成单例的bean。
@Component
public class DemoBean {
private String type = "DemoBean";
public String getName(String name) {
return name + ":" + type;
}
}
在实际测试时,发现无法获取上面的bean,需要注意下bean的包路径,是否在被你程序的扫描路径包含
- @Bean定义方式
主要是结合Configuration来定义bean,首先是声明一个配置类,然后再配置类中,通过返回bean对象的方法形式来声明bean。
public class DemoServiceImpl {
private String type = "DemoServiceImpl";
public String getName(String name) {
return name + " :" + type;
}
}
@Configuration
public class DemoConfig {
@Bean
public DemoService demoService() {
return new DemoServiceImpl();
}
}
需要说明的一点是被声明在方法上,方法都需要有一个返回类型,而这个类型就是注册到IOC容器的类型,接口和类都是可以的,介于面向接口原则,提倡返回类型为接口。
- @Import注册Bean
这种方法最为直接,直接把指定的类型注册到IOC容器里,成为一个java bean,可以把@Import放在程序的入口,在程序启动时自动完成注册bean的过程。
@Import({ LogService.class, PrintService.class})
public class RegistryBean {
}
网友评论