目录
3.2@Import 结合 ImportSelector 接口
3.3@import结合ImportBeanDefinitionRegistrar接口
3.4@importResource 结合配置文件 classpath:spring-jdbc-zx-lsq.xml
1、目的:
阅读本文之后对于springboot中导入bean所有方式有一个整体的理解
2、简单方式
@bean @Component@Controller@Service等
@Configuration
public class ConfigurationTest {
@Bean
public ValueTest getValueTest() {
return new ValueTest();
}
}
下图显示了什么时候被@bean注解标记的方法会被处理,完整的图片地址在文末。
3、复杂方式
3.1@Import 方式
package com.defire.other;
public class ImportTest {
public String primm(){
System.out.println(11111);
return "primm";
}
}
package com.defire.other;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({ImportTest.class})
public class ImportConfigurationTest {
}
只需要使用@Import({ImportTest.class})即可轻松引入各种bean。springboot这种情况使用
下图显示了在整个spring体现中@import注解什么时候生效,完整的图片地址在文末。
3.2@Import 结合 ImportSelector 接口
public class ImportSeletorTest implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
String[] arr = new String[1];
arr[0]="com.yeahka.demo.other.ValueTest";
return arr;
}
}
@Configuration
@Import({ImportSeletorTest.class})
public class ConfigurationTest {
}
3.3@import结合ImportBeanDefinitionRegistrar接口
package com.yeahka.demo.otherBean;
public class HelloService {
public String test(){
return toString();
}
}
@RestController
public class TestController {
@Autowired
ImportAnnotationTest importAnnotationTest;
@Autowired
HelloService helloService;
@GetMapping("/test")
public String test(){
return helloServic