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

Springboot使用复盘

1、约定优于配置

遵循一种约定。一种大众化的合理的默认值。

偏离约定:需要手动配置对约定进行配置替换。对应的映射关系不需要手动配置。默认约定大大减少手动配置。

2、SpringBoot概念

2.1、什么是SpringBoot

全新开源的轻量级框架,基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且简化了整个搭建和开发过程,集成大量的框架解决了依赖包的版本冲突和不稳定性等问题。

2.2、SpringBoot的主要特性

1、SpringBoot Starter:起步依赖,将常用的依赖分组进行了整合,将其合并到了一个依赖中,这样就可以一次性添加到项目的Maven中或Gradle构建中。

2、使编码变得简单,SpringBoot采用JavaConfig的方式对Spring进行配置,并且提供了大量的注解。

3、自动配置:springboot在启动的过程中,会自动的将一些配置类的bean进行创建,并且添加到IOC容器中。

4、使部署变得简单。内置了三种Servlet容器:Tomcat,Jetty,undertow,并且项目可以打成一个jar包。

3、案例实现

3.1案例实现

4、热部署

插件:spring-boot-devtools

没啥用,项目较大时不太实用,直接ctrl+F9去build项目就好。

5、全局配置文件

5.1全局配置文件概述及其优先级

能够对一些默认的配置值进行修改及自定义配置,例如端口号。

两种及优先级:

2.4.0之前:application.properties>application.yml

2.4.0之后:application.properties<application.yml

路径及优先级:

1-file:./config/

2-file:./

3-classpath:/config

4-classpath:/

5.2properties配置文件

@ConfigurationProperties(prefix = "person")
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

list和arry写法相同

map和类写法相同

5.3yml配置文件

树状格式,冒号后面加空格,

6、属性注入

使用全局配置文件设置属性

6.1属性注入常用注解

@Configuration声明一个类作为配置类

@Bean声明在方法上,将方法的返回值加入Bean容器

@Value属性注入

@Configurationproperties(prefix="jdbc")批量属性注入

@propertysource(classpath:/jdbc.properties")指定外部属性文件,在类上添加

6.2@Value属性注入

单属性注入,不需要生成set,get方法

@Value("${jdbc.url}")

6.3@Configurationproperties

批量注入,需要生成set,get方法

@Configurationproperties(prefix="jdbc")

6.4第三方配置

在@Bean上面加上@Configurationproperties(prefix="jdbc")

@Configuration
public class MyService {
    
    @ConfigurationProperties(prefix = "person")
    @Bean
    public Person person(){
        return new Person();
    }
}

6.5松散绑定

使用一些宽松的规则将环境属性绑定到@ConfigurationProperties Bean,因此环境属性名之间不需要完全匹配。

例如驼峰命名法。泰森模式(-),下划线模式(_),全大写

7、日志框架

7.1日志框架介绍

项目开发中必不可少的记录事件的组件。

在构建的时候,是怎么样的一个构建设计思想?

通常情况下,日志是由一个抽象层+实现层的组合来搭建的。

spring框架选择使用JCL作为默认日志输出,而springboot默认选择了SLF4J结合logback

7.2SLFJ的使用

导入slf4j的jar包,适配器,具体实现

7.3统一日志框架的使用

问题:第三方框架会有自己的日志框架,与springboot产生冲突

使用步骤:

1、排除系统中其他的日志框架

2、使用中间包替换要替换的日志框架

3、导入我们选择的SLF4J实现

7.4springboot的日志关系

1、排除系统中其他的日志框架

<dependency>

<exclusion>

2、使用中间包替换要替换的日志框架

jul-to-slf4j

log4j-to-slf4j

3、导入我们选择的SLF4J实现

默认使用logback实现,如果使用其他的,替换即可

7.5springboot日志使用

Logger logger = LoggerFactory.getLogger(this.getClass());

日志级别(从小到大):

logger.trace();

logger.debug();

logger.info();   //默认级别

logger.warn();

logger.error();

7.6springboot自定义日志输出

在application.properties中配置

指定日志级别:logging.level.com.wangj(具体包的路径)=trace

指定控制台日志的输出格式:logging.pattern.console=

指定日志输出路径:logging.file.name=my.log     logging.file.path=/var/log(会自动创建spring.log)

指定文件日志的输出格式:logging.pattern.file=

7.7替换日志框架

<exclusion>:spring-boot-starter-logging

<dependency> spring-boot-starter-log4j2


http://www.kler.cn/a/521849.html

相关文章:

  • MySQL中的读锁与写锁:概念与作用深度剖析
  • 二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2
  • Base64详解
  • 二叉树介绍
  • SpringCloud基础二(完结)
  • pytorch逻辑回归实现垃圾邮件检测
  • 计算机视觉算法实战——车辆速度检测
  • Linux常见问题解决方法--1
  • 度小满Java开发面试题及参考答案 (上)
  • 62.异步编程+Prism
  • 数据结构实战之线性表(一)
  • 【算法】多源 BFS
  • YOLOv8:目标检测与实时应用的前沿探索
  • HTML5使用favicon.ico图标
  • android 的aab包
  • 2015年蓝桥杯第六届CC++大学B组真题及代码
  • 利用Python中Scapy库分析网络性能
  • 1月27(信息差)
  • 当高兴、尊重和优雅三位一体是什么情况吗?
  • ShenNiusModularity项目源码学习(7:数据库结构)
  • 前端监控之rrweb录制用户行为
  • 【学术会议征稿】第五届能源、电力与先进热力系统学术会议(EPATS 2025)
  • 18. 四数之和【力扣】——两层循环后的双指针法
  • 开启eslint后,html中全角符号绕过eslint检测
  • .NET Core 中依赖注入的使用
  • 上位机知识篇---CMake