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容器创建完成........