springboot笔记

springboot

提供快速使用spring的方式,基于约定大于配置,快速构建项目。

springboot构建项目

  1. 创建maven工程
  2. 继承父工程 spring-boot-starter-parent
  3. 添加web开发起步依赖 spring-boot-starter-web
  4. 编写起步类HelloApplication 添加 @SpringBootApplication 注解
  5. 编写main方法 SpringApplication.run( args);

spirngboot提供了2种类型的配置文件

​ gradle 技术默认配置文件名称 : application

​ 在同一级目录下优先级: properties > yml > yaml

程序启动时, 加载文件:

	1. file:./config: 当前项目下的/config目录

​ 2. file:./: 当前项目下的目录
​ 3. classpath:/config/: classpath目录下的/config目录
​ 4. classpath: classpath的根目录

yaml语法

  • ​ 大小写敏感。

  • ​ 数据值前面必须有空格作为分隔符。

  • ​ 使用缩进标识层级关系

  • ​ 缩进不允许使用tab键, 。只能使用空格(各个系统tab对应的空格数不同,导致层次混乱)。

  • ​ 缩进空格数不重要, 只要相同层级元素左侧对齐即可。

  • ​ #表示注释,从这个字符到行尾,都会被解释器忽略。

  • ​ 对象(map):

    person:

    ​ name: zhangsan

  • ​ 数组:

    address:

    • beijing
      ​ - shanghai
  • ​ 存量: 单个的
    msg1: 'hello \n world' #单引号忽略转义字符
    msg2: "hello \n world" #双引号识别转义字符

  • 参数引用
    $

读取配置文件

  1. @value("@{key}")

  2. Environment @Autowired 注入, env.getProperty("key")

  3. @configurationproperties

profile

新建多个配置文件

application-dev.yml

application-pro.yml

​ 使用参数 spring.profiles.active =dev 使哪个配置文件生效。

springboot自动配置

自定义条件

  1. 定义条件类: 自定义类实现Condition接口, 重写matches方法, 在matches方法中进行逻辑判断,返回boolean值,match方法两个参数:

    ​ context: 上下文对象,可以获取属性值,类加载器,获取BeanFactory等。

    ​ metadata:元数据对象, 用于获取注解属性。

  2. 判断条件

    ​ 在初始化Bean时候,使用@Conditional(条件类.class)注解

  3. springboot提供的常用条件注解:

    ConditionalOnProperty:判断配置文件中是否有对应的属性和值才初始化Bean。

    ConditionalOnClass:判断环境中是否有对应的字节码文件才初始化Bean。

    ConditionalOnMissingBean:判断环境中没有对应的Bean才初始化Bean。

springboot @Import注解

@Enable* 底层依赖于@Import注解导入一些类, 使用@Import导入的类会被Spring加载到IOC容器中。 而@Import提供了4种用法:

1. 导入Bean。 @Import(User.class)
1. 导入配置类。  -- 配置类使用@Configuration注解 添加@Bean 实现bean
1. 导入ImportSecector实现类。 一般用于加载配置文件中的类。
1. 导入ImportBeanDefinitionRegistrar实现类。

springboot 监听器(基于java监听 EventObject)

  1. ApplicationRunner接口

    当项目启动后执行run方法。可以做缓存预热等动作。

  2. CommandLineRunner接口

    功能类似ApplicationRunner接口,当项目启动后执行run方法。

  3. 继承ApplicationContextInitializer接口

    新建文件META-INF/spring.factories

    ​ org.springframework.context.ApplicationContextInitializer=自己写的类

  4. 继承SpringApplicationRunListener接口(可以添加spring启动周期各个周期的方法)

​ 新建文件META-INF/spring.factories

​ org.springframework.boot.SpringApplicationRunListener=自己写的类

posted @   点点滴滴DY  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示