1、第9集中,在讲容器功能 组件添加 @Configuration时,

MainApplication.java

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.atguigu.boot")
public class MainApplication {
    public static void main(String[] args) {
        //1、返回我们IOC容器
        ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
        //2、查看容器里面的组件
        String[] names = run.getBeanDefinitionNames();
        for (String name : names) {
            System.out.println(name);
        }
        //3、从容器中获取组件
        Pet tom01 = run.getBean("tom", Pet.class);
        Pet tom02 = run.getBean("tom", Pet.class);
        System.out.println("组件:"+(tom01 == tom02));//输出始终为true
	}
}

MyConfig.java

@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件
public class MyConfig {
    @Bean("tom")
    public Pet tomcatPet(){
        return new Pet("tomcat");
    }
}

在容器中的始终是同一个bean。不管是full还是lite模式,容器中的bean始终是容器刷新时注入的。容器只会注入一次,所以取出来的是同一个对象。另外容器默认是单例的。

2、yaml
yml先扫描,如果properties中的内容和yml重复了,properties配置会覆盖yml的配置;
properties>yml>yaml

例如:

person:
  userName: zhangsan
  boss: false
  birth: 2019/12/12 20:12:33
  age: 18

字符串如果不加双引号“”和单引号'' ,则默认是单引号
单引号中的\不表示转义,双引号中的\表示转义字符,例如:

person:
  userName: "zhangsan \n 李四"

3、自定义的类和配置文件(yaml)绑定一般没有提示,导入下面依赖就会有提示

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

我们正常来写属性是这样的:

person:
  userName: zhangsan

用提示自动填充属性是这样的:

person:
  user-name: zhangsan

这两者没有区别,-n就是代表大写的N

4、
在这里插入图片描述
/**拦截所有文件包括子文件夹里的,/*只拦截当前目录下

5、
在这里插入图片描述

spring:
  mvc:
    static-path-pattern: /res/**  #代表访问静态资源都需要带res前缀

  resources:
    static-locations: [classpath:/haha/]	#代表让访问的静态资源都在指定的静态资源文件夹路径下找

在这里插入图片描述
6、idea中打开继承树的快捷键默认是Ctrl+H

7、

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐