zoukankan      html  css  js  c++  java
  • ________________初学springboot8

    @Enable注解原理(视频09)

    4个

    使用@import()将Javabean导入Spring容器中

    @SpringBootApplication

    @ComponentScan

    @Async//异步处理。bean 类之上

    //@EnableAsync使异步处理生效

    //@Import({User.class,Role.class,MyConfiguration.class})//可以导入一个类,或者多个类

    @Import({MyImportSelector.class})//使用importSelector的实现类进行设置,引入实现类对bean进行装配

    importSelector的返回值必须是一个类的全程,该类会被Spring容器所托管

    public class App {

    public static void main(String[] args) {

    ConfigurableApplicationContext context=SpringApplication.run(App.class, args);

    System.out.println(context.getBean(User.class));

    System.out.println(context.getBean(Role.class));

    //System.out.println(context.getBeansOfType(Runnable.class));

    context.close();

    }

    }

    public class MyImportSelector  implements ImportSelector{

    @Override

    public String[] selectImports(AnnotationMetadata importingClassMetadata) {

    // TODO Auto-generated method stub

    return new String[] {

    "com.lsq.springboot.User",

    "com.lsq.springboot.Role"

    };

    }

    }

     可以通过importSelector的实现类,拿到注解的值,对拿到的值进行处理

    两个需要注意的接口

    ImportSelector //自动转入  ImportBeanDefinitionRegistrar//手动自己注入

    public class MyImportSelector  implements ImportSelector{

    @Override

    public String[] selectImports(AnnotationMetadata importingClassMetadata) {

    System.out.println(importingClassMetadata.getAnnotationAttributes(EnableLog.class.getName())

    +"真的好无语");

    return new String[] { 

    "com.lsq.springboot.User",

    "com.lsq.springboot.Role"

    };

    }

    }

    public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {

    @Override

    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {

    BeanDefinitionBuilder bdb=BeanDefinitionBuilder.rootBeanDefinition(User.class);

    BeanDefinition beanDefinition = bdb.getBeanDefinition();

    registry.registerBeanDefinition("user", beanDefinition);

    BeanDefinitionBuilder bdb2= BeanDefinitionBuilder.rootBeanDefinition(Role.class);

    registry.registerBeanDefinition("role", bdb2.getBeanDefinition());

    BeanDefinitionBuilder bdb3= BeanDefinitionBuilder.rootBeanDefinition(MyConfiguration.class);

    registry.registerBeanDefinition(MyConfiguration.class.getName(), bdb3.getBeanDefinition());

    }

    }

  • 相关阅读:
    写点别的,关于二维码,由印美图想到的
    600篇以上博客,才能进阶到精通的地步,奋斗吧少年
    写博客真的很枯燥,更麻烦的是我还不会MD,排版太不友好了啊。
    对sqlserver存储过程合游标的一些理解
    sqlserver的存储过程
    Apache负载均衡配置
    组合模式解决原型创建对象传参和共享难题
    原型创建对象
    构造函数创建对象
    jQuery实现瀑布流的简单方法
  • 原文地址:https://www.cnblogs.com/qiqisx/p/9354100.html
Copyright © 2011-2022 走看看