黑马程序员笔记

# 基础

# SpringBoot 基础

# 配置文件

  1. properties 文件
  2. yml 文件
    a. 使用 @Value ("${键名}") 获取配置信息
    b. 使用 @ConfigurationProperties (prefix = "") 获取配置信息

# 配置 Mybatis

  1. controller -> service -> mapper

# Bean 管理

# Bean 扫描

  1. 启动类下的 @ComponentScan 默认扫描所处包下的标签。

# Bean 注册

  1. 如果注册的 bean 对象来自第三方,便无法使用 @Component 及其衍生注解声明 bean
    使用 @Bean 和 @Import。
    a. @Bean
    @Bean 自动将声明方法的返回结果注入容器,建议在配置类中集中创建。通常对象默认的名字是方法名。
    如果方法内部需要使用到容器中已经存在的 bean 对象,那么只需要在方法参数中声明即可。

    b. @Import
    @Import (***.class) 或者导入 ImportSelector 接口实现类。使用自定义注解批量创建。

1
2
3
4
5
6
7
8
9
10
11
12
13

public class CommonImportSelector implements ImportSelector{
public String [] selectImports (AnnotationMetadata importingClassMetadata){
List<String> imports = new ArrayList<>();
InputStream is = CommonImportSelector.class.getClassLoader ().getResourceAsStream ("");
String line = null;
while ((line = br.readLine ()) !=null ){
imports.add (line);
}
br.close ();
return imports.toArray (new String [0]);
}
}

# 注册条件

使用 @Conditional 及其衍生注解设置注册生效条件。

# 自动配置原理

@EnableAutoConfiguration
@AutoConfigurationImportSelector

  1. 提供配置类:CommonConfig
  2. 提供自动配置类:@AutoConfiguration 和 @Inport (CommonConfig.class)
  3. 自动配置类的类名添加到配置文件

# 自定义 starter

autoconfigure 模块和 starter 模块

  1. autoconfigure 模块:提供自动配置功能(@AutoConfiguration),自定义配置文件 META-INF/spring/xxx,imports。
  2. starter 模块:在 pom 中引入自动配置模块。