5.@import导入组件

@Import({Person.class,Dog.class}):自动给容器中注入这两个组件,这两个组件在容器中的name=包名.类名
注意:@Import这个标签只能在组件上使用,例如在@Configuration或者@control或者@service标注的类上使用

例如:@Configuration标注的类上是专门往容器中注册组件的,
        1.@Bean标注的方法上,返回值就是往容器注册的组件对象,组件的name为方法名称(getperson/getDog)
        2.@Import({注册的组件列表}):注册的组件的name为:包名.类名
        
    样例代码:
         @Import({Person.class,Dog.class})
        @Configuration
        public class MyConfiguration {
            @Bean
            public Person getperson(){
                return new Person("吴孟达",18);
            }
            @Bean
            public Dog getDog(){
                return new Dog("刘丹",19);
            }
        }
    测试代码:
        @SpringBootApplication
        public class MainApplication {
            public static void main(String[] args) {
                System.out.println("启动springboot项目...");
                ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
                System.out.println("启动成功!");
                //根据类型获取容器中组件的name值列表
                String[] beanNamesForType = run.getBeanNamesForType(Person.class);
                for (String s : beanNamesForType) {
                    System.out.println("id:"+s);
                }
            }
        }
    输出:
        id:cn.com.entity.Person(@import标签注入的组件name值)
        id:getperson(@Configuration标签和@Bean标签注入组件的name值是:@Bean标注的方法名称)

 

posted @ 2022-05-11 21:28  努力的达子  阅读(147)  评论(0)    收藏  举报