【Spring Boot】
SpringBoot
- Spring Boot概念
- Spring Boot项目创建
- 通过idea创建Spring Boot
- SpringBoot配置文件
- 配置文件作用
- 配置文件的分类
- 配置文件的格式
- properties配置文件
- yml配置文件
- SpringBoot日志文件
- 日志作用
- 自定义日志打印
- 日志级别
- 日志的持久化
- 更简单的实现自定义日志的打印-lombok
Spring Boot概念
- SpringBoot的产生是为了简化Spring程序开发的。
- SpringBoot优点:
(1)快速集成框架,SpringBoot提供了启动添加依赖的功能,用于秒级集成各种框架。
(2)内置运行容器,无需配置Tomcat等web容器,直接运行和部署程序。
(3)快速部署项目,无需外部容器即可启动并运行项目。
(4)完全可以抛弃繁琐的xml,使用注解和配置的方式进行开发。
(5)支持更多的监控的指标,可以更好的了解项目的运行情况。
Spring Boot项目创建
通过idea创建Spring Boot
(一)社区版需要安装Spring Assistant插件
(二)创建项目
(三)输出hello world
@Controller
public class UserController {@ResponseBody //返回一个非静态页面的数据@RequestMapping("/sayhi") //设置路由地址sayHipublic String sayHi(){return "hello world";}
结果:
(1)需要将对象托管到springBoot的对象,必须要放在SpringBoot启动类的根路径或子路径中,否则不能被框架识别。
(2)SpringBoot配置比较少,但是SpringBoot的设计思想是:约定大于配置。
SpringBoot配置文件
配置文件作用
整个项目中所有重要的数据都是在配置文件中配置的:
(1)数据库的连接信息
(2)项目的启动端口
(3)第三方系统的调用秘钥等信息
(4)用于发现和定位问题的普通日志和异常日志等
配置文件的分类
- 配置文件的分类:
(1)系统的配置文件,比如连接字符串,日志的相关设置,系统定义好的。
(2)用户自定义的。
配置文件的格式
- Spring Boot配置文件主要分为两种格式:
(1).properties
(2).yml
规则:
(1)一个项目中可以存在两种配置文件,但是不建议一个项目中出现两种配置文件。
(2)
如果properties文件没有提示信息,那么就需要安装spring Tools插件
properties配置文件
properties配置文件是最早期的配置文件格式,也是创建Spring Boot项目默认的配置文件。
- properties配置文件的基本语法:
key=value
server.port=8080
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
characterEncoding=utf8
spring.datasource.name=root
spring.datasource.password=11
关于properties乱码的问题处理:
- 读取配置文件:
使用@Value注解来实现读取配置文件中的内容。
public class UserController {@Value("${server.port}")private String port;
yml配置文件
yml最大的优势是可以跨语言。
- yml基本语法:
key: value
- yml特点:
(1)写法简单,可读性高
(2)支持更多的数据类型
(3)跨语言使用:java,golang,python
- properties和yml连接数据库的配置对比:
- yml单双引号问题:
总结:yml中如果使用了双引号就会按照原语义执行,如果不加单,双引号,或者加了单引号,那么默认会将字符串中的特殊字符进行转义
- 配置和读取对象
使用注解@ConfigurationProperties来读取
# 对象写法1
student:id: 1name: zhangsanage: 20
# 对象写法2
student2: {id: 2,name: lisi,age: 20}
@Data
@ConfigurationProperties(prefix = "student") //读取配置文件中的对象
@Component
public class student {private int id;private String name;private int age;
}
- yml集合的读和写
# 集合写法
dbtypes: {name: [mysql,sqlserver,db2]}
@Component
@Data
@ConfigurationProperties("dbtypes")//读取配置文件中集合
public class ReadList {private List<String> name;
}
SpringBoot日志文件
日志作用
日志除了发现和定位问题之外,还有的功能:
(1)记录用户登录日志,方便分析用户是正常登录还是恶意破解用户。
(2)记录系统的操作日志,方便数据恢复和定位操作人。
(3)记录程序的执行时间,方便为以后优化程序提供数据支持。
自定义日志打印
自定义打印日志的实现步骤:
1,在一个类中先获取到打印日志对象
2,使用日志对象提供的方法实现日志的打印
@Controller
@ResponseBody
public class UserController {// 1.得到日志对象private final static Logger log= LoggerFactory.getLogger(UserController.class);//设置当前类的类型@RequestMapping("/sayhi")public void sayHi(){// 2.使用日志对象提供的打印方法进行日志打印log.trace("我是trace");log.debug("我是debug");log.info("我是info");log.warn("我是warn");log.error("我是error");}
}
日志级别
- 日志级别分为:
(1)trace:少许的日志(级别最低)。
(2)debug:调试日志。
(3)info:普通信息日志。
(4)warn:警告日志。
(5)error:错误日志。
(6)fatal:致命的日志(系统输出的日志,不能自定义打印) - 日志级别顺序:
- 设置日志级别:
# 设置全局的日志级别
logging.level.root=warn
#设置局部文件夹的日志级别
logging.level.com.example.demo.controller=trace
注:局部日志级别优先级高于全局的日志级别
日志的持久化
日志的持久化就是将日志呢永久的保存到磁盘的某个位置。
1,在配置文件中设置日志的保存路径,当设置了保存路径之后,那么日志就会自动的进行持久化。
# 正确设置日志路径的方式1
# 设置日志保存的目录
logging.file.path=E:/javase/
# 正确设置日志路径的方式2
logging.file.path=E:\\javase\\
2,在配置文件中设置日志保存的名称,日志就自动进行持久化
# 设置日志的保存名称
logging.file.name=E:\\javase\\spring-boot.log
更简单的实现自定义日志的打印-lombok
1,准备工作:添加lombok到当前项目
步骤:
2,使用@Slf4j 获得日志对象log
3,使用log对象自定义打印对象
@Controller
@ResponseBody
@Slf4j //替代了之前需要通过LoggerFactory.getLogger操作
public class UserService {@RequestMapping("/sayhi1")public void sayHi1(){log.trace("我是trace");log.debug("我是debug");log.info("我是info");log.warn("我是warn");log.error("我是error");}
}
【Spring Boot】相关推荐
- 【spring boot】启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案
[spring boot]启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案 导入的一个外部的spring boot项目, ...
- 【Spring Boot】使用Spring Boot来搭建Java web项目以及开发过程
[Spring Boot]使用Spring Boot来搭建Java web项目以及开发过程 一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来 ...
- 【spring boot】8.spring boot的日志框架logback使用
在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. 参考:http://tengj.top/2017/04/05/springbo 开篇之前,贴上完整applica ...
- 【spring boot】10.spring boot下的单元测试
spring boot下的单元测试,思前想后还是需要单独用一章篇幅来看看. 然后在看了介绍和使用时候,我感觉并不想多去看了. 但是还是给后来人留下参考的路径: 官网说明:https://spring. ...
- 【spring boot】【thymeleaf】SPEL调用静态方法和静态属性
前言 spring boot 2.1.1.RELEASE thymeleaf 3.0 静态属性 <sapn th:text="${T(java.lang.Math).PI}" ...
- 【spring boot】5.spring boot 创建web项目并使用jsp作前台页面
贼烦的是,使用spring boot 创建web项目,然后我再idea下创建的,but 仅仅启动spring boot的启动类,就算整个项目都是好着的,就算是能够进入controller中,也不能成功 ...
- 【Spring Boot】Spring Boot 2.x + Spring Security OAuth2 2.3.3 出现 bad client credentials 错误的踩坑记录
环境: spring boot 2.0.4.RELEASE spring security oauth 2.3.3.RELEASE OAuth2的配置 @Configuration @EnableAu ...
- 【Spring Boot】Spring Boot @EnableOAuth2Sso | 启用 OAuth2 单点登录
文章目录 演示工具版本 Maven 依赖 使用 @EnableOAuth2Sso OAuth2 配置 登出 完整示例 输出 参考文献 源码下载 本页将介绍Spring Security OAuth2 ...
- 【Spring Boot】条件化自动装配
[引言] 在前面的博客中,了解了Spring Boot的自动装配是如何实现的,这只是一个基础,对于自动装配,更专业的使用是可以做到条件化自动装配. [条件注解] Spring Boot中,提供了以下条 ...
- 【Spring Boot】初识
前言 说好下篇要写用Spring Boot搭建博客或者写Spring Boot初体验:想了想,还是决定先写Spring初体验,但是在写Spring Boot初体验前,我觉得有必要先解释什么是Sprin ...
最新文章
- 车牌识别的分类器文件目录
- 重磅《美国机器智能国家战略》
- 电机驱动板测试:是否可以输出150kHz高频信号?
- org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed
- mysql order by 多字段排序
- 跟vczh看实例学编译原理——一:Tinymoe的设计哲学
- JDBC(二)——使用IDEA连接数据库、数据库连接池
- 航测大数据量处理_揭秘航测局“航空摄影质量自动检查系统”的“黑科技”
- 【Linux】在Linux环境下使用VSCode调试C/C++程序
- 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
- 温度转换的python程序_python学习阶段性小结
- linux中pstree命令的含义,pstree命令--Linux命令应用大词典729个命令解读
- Asp.net MVC - 使用PRG模式(附源码)
- php 图片相似度对比算法,PHP实现的简易版图片相似度比较
- GAN领风骚!Github盘点2021最惊艳38篇AI论文
- 什么是懒惰的苏珊(Lazy Susan)
- qt qrc html,写一个QT资源文件(qrc)
- excel vba 解密
- 《音乐之声》萨尔斯堡的歌声如此旖旎
- 基于Vue3+TS+Vite+Cesium创建项目