Loading

SpringBoot 学习笔记

image

SpringBoot

注解

@Autowired (ByType 优先, 多个同类型则使用 ByName)

@Resource (ByName 优先, 未找到后使用 ByType 备选)

@Configuration

@Bean

这两个注解的作用是替代传统的 xml 配置文件

@Bean 的形参会自动以 @Autowired 的方式进行注入

@Primary

@Qualifier

解决自动注入时的冲突问题, @Qualifier 的优先级高于 @Primary, 前者是默认值的思想而后者的思想是筛选

@Import

等同于 xml 配置文件中的 <import> 标签, 引入 @Configuration 类

@ImportResource({"classpath:beans.xml"})

将指定 xml 配置文件中的对象引入 IOC 容器

@ComponentScan

等同于 <context:component-scan> 标签

----- 配置信息

@ConfigurationProperties

被动接受 properties 中定义的变量

@Value("${properties}")

主动获取 properties 中定义的变量

@PropertySource({"classpath:hero.properties"})

指定配置文件, 不能使用 yml 文件, 且优先级低于 application.properties/yml

----- JSR-303

@Validated

声明为需要验证的类

@Min
@Max

@NotNull

@NotBlank

@NotEmpty

@Range

@Pattern

----- 多环境配置

@Profile

根据环境决定代码是否生效

----- 自动配置

@Conditional

派生注解:

@ConditionalOnJava

@ConditionalOnBean

@ConditionalOnMissingBean

配置信息

同级目录中 properties 的优先级高于 yaml

优先级(由高到低):

  1. args
  2. file:./config/*/application
  3. file:./config/application
  4. file:./application
  5. class:/config/application
  6. classpath:/applicaion

org.springframework.boot.context.config.ConfigDataEnvironment

JSR-303

validated

多环境配置

profile

spring:
  profiles:
    active: dev

自动配置

基于配置信息来实现的

debug: true

查看自动配置详情

AOP

springboot 默认的动态代理是 cglib

可以通过 spring.aop.proxy-target-class=false 指定动态代理方式为 jdk 动态代理(基于类的自动注入需要改为基于接口的自动注入)

静态资源路径

优先级 (由低到高):

/resource/public/

/resource/static/

/resource/resources/

/WEB-INF/resources/

org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration

等同于 spring-webmvc.xml

org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties

posted @ 2021-10-25 20:45  xtyuns  阅读(24)  评论(0编辑  收藏  举报