我是靠谱客的博主 忧伤唇彩,最近开发中收集的这篇文章主要介绍spring import用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

@import注解的主要作用是将类注入到spring的上下文中去

用法1在加了@Configuration注解的配置类中使用

//配置类,将被其他配置类引用
@Configuration
public class MybatisConfig {
}
//引用MybatisConfig配置类
@Configuration
@Import(value = {MybatisConfig.class})
public class JavaConfig {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
for (String str :ac.getBeanDefinitionNames()) {
System.out.println(str);
}
}
}

运行结果 

javaConfig
com.test.config.MybatisConfig 

 用法2实现ImportSelector接口的类

//实现ImportSelector接口,并可以加条件判断是否要注入spring
public class Test implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata annotationMetadata) {
String[] strings = new String[1];
if (1==1){
strings[0] = Ab.class.getName();
}
return strings;
}
}
//将上边的Test类加入
@Configuration
@Import(value = {MybatisConfig.class,Test.class})
public class JavaConfig {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
for (String str :ac.getBeanDefinitionNames()) {
System.out.println(str);
}
}
}

观察结果,Ab类也注入了spring环境中

javaConfig
com.test.config.MybatisConfig
com.test.config.Ab

用法3实现 ImportBeanDefinitionRegistrar接口,自己定义beanDefininition

//实现ImportBeanDefinitionRegistrar,在BeanDefinitionRegistry中加入BeanDefinition
public class Test1 implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
// 注册dog的bean定义,其中beanName为dogBean
RootBeanDefinition rbd = new RootBeanDefinition(Ab.class);
registry.registerBeanDefinition("ab",rbd);
}
}
//加入Test1
@Configuration
@Import(value = {MybatisConfig.class, Test1.class})
public class JavaConfig {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
for (String str : ac.getBeanDefinitionNames()) {
System.out.println(str);
}
}
}

观察结果发现ab同样注入到spring中了

javaConfig
com.test.config.MybatisConfig
ab

用法4普通类

//将Ab类加入
@Configuration
@Import(value = {MybatisConfig.class, Ab.class})
public class JavaConfig {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
for (String str : ac.getBeanDefinitionNames()) {
System.out.println(str);
}
}
}

 观察结果Ab类同样注入到spring中了

javaConfig
com.test.config.MybatisConfig
com.test.config.Ab

最后

以上就是忧伤唇彩为你收集整理的spring import用法的全部内容,希望文章能够帮你解决spring import用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(91)

评论列表共有 0 条评论

立即
投稿
返回
顶部