当前位置: 首页 > news >正文

spring boot 笔记大杂烩

一,springboot项目创建


springboot创建时idea会打开start.spring.io失败报错
可以手动打开这个页面,然后选择maven项目,然后修改group和name名然后添加依赖web,然后生成项目包,解压缩后用idea打开就能用了

运行后报错
Error:java: 无效的源发行版: 17 
原因:报错是因为项目里jdk版本选择的问题,需要在sitting和struct里面分别修改成8


二,目录结构


## resource:
static:静态资源(js,css,图片,音频,视频)
templates:模板文件(模板引擎freemarker,thymeleaf;默认不支持jsp)
application.properties:配置文件

spring boot 内置了tomcat,并且不需要在打成war包在执行了
可以在application.properties里进行参数配置例如:端口号配置

三,配置文件及yml

@PropertySource()引入其他配置文件

程序默认会识别application.properties和application.yml里的配置信息

当是其他文件名字的时候可以这样写

conf.properties是配置文件的文件名@PropertySource(value={"classpath:conf.properties"})public class Student{...}

但是@PropertySource(value={"xxx"})只能识别properties的文件,不能识别yml的文件

默认全局配置文件:


application.properties:

       1, k=v

        2,或者行内写法(集合数组用中括号,可以省略,对象属性map用大括号,不可以省略


application.yml:

不是标记文档,
     注意 1, k:空格v
                    2,通过垂直对齐指定层次关系
                    例如server:
                                port: 8888
                                path: /a/v/b
                    3,默认可以不写引号,双引号会将其中的转义符进行转义,单引号和不写不会转义


xml:

是一个标记文档
    <server>
        <port>8888</port>
    </server>

配置文件的优先级

多个地方配置时,如果冲突,优先级如下:

命令行参数(调用外部配置文件>运行参数)>内部文件(properties>yml)

A,项目内部的配置文件

默认会读application.properties和application.yml,相互补充,如果内容冲突,则properties中的优先级更高

这两个文件可以存在于一下4个位置,内容冲突时优先级从高到低为:

file:项目根目录/config      (项目根目录和src平级)

file:项目根目录

classpath:项目根目录/config    (包下)

classpath:项目根目录

B。项目外部的配置文件

外部配置文件优先级高于内部,同一个配置同时存在,外部大于内部

1,多配置修改时可以引用外部配置文件,指定外部的配置文件

2,个别配置修改时可以用命令行指定配置参数,例如:java -jar  xxx.jar  --server.port=8888

四,通过yaml给对象注入值:

通过@ConfigurationProperties("dd")给对象注入值

@ConfigurationProperties("dd")是通过yml/properties配置文件取值

注入值

yml:

student:name: zhangsanage: 11sex: truebirthday: 2024/02/25

绑定:

@Component //将此javabean放入spring容器
@ConfigurationProperties(prefix = "student")
上面这两个是引入配置文件里配置信息的作用
public class Student {

。。。}

通过@value("dd")给对象注入值

@Component //将此javabean放入spring容器
//@ConfigurationProperties(prefix = "student")  //注解和value同时用时,注解的优先级高,可以互补用
public class Student {@Value("ddd")private String name;@Value("44")//int也要加双引号private int age ;private boolean sex;private Date birthday;

@ConfigurationProperties("dd")和@value("dd")的区别:
             

@ConfigurationProperties("dd")  @value("dd")
注入值批量注入单个
松散语法 注1支持

不支持

spEL   注2不支持支持
JSR303数据校验(例如邮箱格式校验)支持不支持
注入复杂类型  注3支持不支持

注1:松散语法举个例子pet的属性是nickName在配置文件里写成nick-name是可以注入到对象的

nickName是驼峰命名,nick-name是松散命名

注2:spEL    :Spring表达式语言(Spring Expression Language,SpEL)支持下面的写法

public class Student {
    @Value("${student.name}")private String name;

注3: (8个基本类型/string/Date)是简单类型,其他的是复杂类型

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【ARM】CMSIS 软件标准接口
  • 回归预测|基于灰狼优化GWO-Transformer-BiLSTM组合模型的数据回归预测Matlab程序 多特征输入单输出
  • 前端(三):Ajax
  • 【Linux】Linux环境基础开发工具使用之软件包管理(yum)与 Linux编辑器(vim)
  • 力扣面试经典100题
  • php7.2后解密微信推送过来的数据
  • 使用 Java RestClient 与 Elasticsearch 进行商品文档操作
  • 进阶SpringBoot之 Thymeleaf 模板引擎
  • MySQL:复杂查询(一)——聚合函数分组查询联合查询01
  • C#实现动画效果
  • 基于STM32开发的智能温室控制系统
  • VisionPro二次开发学习笔记10-使用 PMAlign和Fixture固定Blob工具检测孔
  • MySQL运维-主从复制
  • 【学习笔记】Day 9
  • Qt动态调用 - QMetaObject::invokeMethod
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Android 控件背景颜色处理
  • CODING 缺陷管理功能正式开始公测
  • iOS | NSProxy
  • MYSQL 的 IF 函数
  • spring-boot List转Page
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue UI框架库开发介绍
  • 关于springcloud Gateway中的限流
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 人脸识别最新开发经验demo
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微信小程序开发问题汇总
  • 项目管理碎碎念系列之一:干系人管理
  • 以太坊客户端Geth命令参数详解
  • 优化 Vue 项目编译文件大小
  • 1.Ext JS 建立web开发工程
  • ​​​​​​​​​​​​​​Γ函数
  • ​补​充​经​纬​恒​润​一​面​
  • #100天计划# 2013年9月29日
  • #vue3 实现前端下载excel文件模板功能
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (+4)2.2UML建模图
  • (11)MSP430F5529 定时器B
  • (152)时序收敛--->(02)时序收敛二
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (PADS学习)第二章:原理图绘制 第一部分
  • (第30天)二叉树阶段总结
  • (二) 初入MySQL 【数据库管理】
  • (二十六)Java 数据结构
  • (十)Flink Table API 和 SQL 基本概念
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)memcache、redis缓存
  • (转)为C# Windows服务添加安装程序
  • .gitignore文件_Git:.gitignore
  • .net core 3.0 linux,.NET Core 3.0 的新增功能