spring的bean注册

  1. bean注册
  1. 第三方jar包的类想添加到ioc中,加不了@Component该怎么办呢。
    1. 可以使用@Bean和@Import
  2. 引入jar包,可以使用maven安装到本地仓库。
  1. 修改bean的名字:@Bean("aaa")
  2. 使用ioc的已经存在的bean对象,如Country:public Province province(Country country)
  3. 手动扫描类:@Import(CommonConfig.class)
  4. 手动扫描类,优雅地加入多个: @Import(CommonImportSelector)
java 复制代码
public class CommonImportSelector implements ImportSelector {
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        return new String[]{"com.itheima.config.CommonConfig"};
    }
}
  1. 读配置文件,类名和上面一致。方法不同。

    java 复制代码
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        //读取配置文件的内容    List<String> imports = new ArrayList<>();
        InputStream is = CommonImportSelector.class.getClassLoader().getResourceAsStream("common.imports");
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String line = null;
        try {
            while((line = br.readLine())!=null){
                imports.add(line);
            }
    
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }
        return imports.toArray(new String[0]);
    }
  2. 组合注解

启动类直接使用组合注解

相关推荐
N0zoM1z010 分钟前
CALL处 F8的“bug“
windows
mqiqe12 分钟前
架构师考试 五大架构风格
java·微服务·架构
满城小王子19 分钟前
java集合框架
java·开发语言
yngsqq23 分钟前
032集——圆转多段线(Circle to Polyline)(CAD—C#二次开发入门)
windows·microsoft·c#
有点困的拿铁39 分钟前
Java并发不可变篇
java·开发语言
百锦再1 小时前
C#实现在windows上实现指定句柄窗口的指定窗口坐标点击鼠标左键和右键的详细情况
windows·c#·计算机外设
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
LocalDate日期加减一天,mysql日期加减一天
java·开发语言
北冥有鱼丶丶1 小时前
Error creating bean with name ‘reactiveElasticsearchClient
java
fanxbl9571 小时前
Windows 中 Electron 项目实现运行时权限提升以杀掉特定进程
javascript·windows·electron
zhyjhacker2 小时前
WINDOWS XP ReactOS 4.2 对象类型
windows·单片机·嵌入式硬件