1、pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
</dependencies>
2、实体类
import lombok.Data;
@Data
public class Student {
private String name;
private int age;
}
3、实现ImportBeanDefinitionRegistrar接口,注册bean的业务类
import com.it.huaxin.vo.Student;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;
public class CallImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Student.class);
registry.registerBeanDefinition("student", rootBeanDefinition);
}
}
4、配置类
import com.it.huaxin.importbeandefinitionregistrar.CallImportBeanDefinitionRegistrar;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Import(value = {CallImportBeanDefinitionRegistrar.class})
@Configuration
public class ImportBeanDefinitionRegistrarConfig {
}
5、测试类
import com.it.huaxin.config.ImportBeanDefinitionRegistrarConfig;
import com.it.huaxin.vo.Student;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class ImportBeanDefinitionRegistrarTest {
public static void main(String [] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ImportBeanDefinitionRegistrarConfig.class);
Student bean = context.getBean(Student.class);
System.out.println(bean);
System.out.println("Spring IOC容器创建完成........");
}
}
//结果:
Student(name=null, age=0)
Spring IOC容器创建完成........
本文通过实例演示了如何使用Spring框架的ImportBeanDefinitionRegistrar接口来手动注册Bean,并展示了从pom.xml依赖配置到实体类定义,再到实现Bean注册的具体过程。
1244

被折叠的 条评论
为什么被折叠?



