springboot深入学习(一)-----springboot核心、配置文件加载、日志配置
一、@SpringBootApplication
@SpringBootApplication是spring boot的核心注解,源码如下:
相当于:@Configuration+@EnableAutoConfiguration+@ComponentScan
@Configuration:此类是一个配置
@EnableAutoConfiguration:让springboot根据类路径中的jar包依赖为当前项目进行自动配置
@ComponentScan:springboot自动扫描入口类所在包以及其子包里的bean
另外springboot也可以关闭特定的自动配置:@SpringBootApplication(exlude = {DataSourceAutoConfiguration.class})
二、SpringBoot配置文件
1、application.properties或application.yml
SpringBoot的全局配置文件为applicaiton.properties或者application.yml,通常放在src/main/resources/下,如下:
同样也可以使用yml编写,示例如下(将tomcat默认端口修改为8001、将默认访问路径修改为/index):
A、application.properties
server.port=8001
server.context-path=/index
B、application.yml
server:
port:8001
context-path: /index
2、加载xml
springboot提倡零配置,但是项目中难免需要使用xml配置,引入方式如下:
@ImportResource({"classpath:some-context.xml", "classpath:another-context.xml"})
三、外部配置
1、常规属性配置
在spring的项目中,通过@PropertySource指明properties文件的位置,然后可以通过@Value注入值。在SpringBoot里,只需要在appllication.properties文件中定义属性,直接使用@Value即可
示例:
application.properties文件增加属性:
运行结果:
注意点:
A、@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) ----------------------->项目启动的时候会报错,提示没有数据源,因此在初始化bean的时候,排除这个bean
B、项目运行地址是不需要项目名的,直接使用http://localhost:8080/index,而不是http://localhost:8080/项目名称/index
2、类型安全的配置
通过@Value的方式配置属性也可以,但是当属性过多时,会写许多个@Value,同时也不美观,因此springboot还提供了@ConfigurationProperties将属性与一个bean关联,示例如下:
运行结果:
注意点:
A、使用lombok的@Data可以省去写get、set方法
B、有时候会提示一个错误:Spring Boot Annotion processor not found in classpath
这时需要添加一个依赖,如下:
C、在加载application.properties中的属性时,不需要指定location,如果是在其他自定义的properties文件中去加载属性,则需要加上location(1.5.1以上版本取消)
@ConfigurationProperties(prefix = "xxx", locations = {"classpath:/xxx.properties"})
如果springboot版本高于1.5.1,则可以使用这种方式(将类注册为@component,并且使用@ConfigurationProperties+@PropertySource):
四、日志配置
springboot支持log4j、logback等等作为日志框架,但是默认日志框架使用的是logback,示例如下:
配置日志文件:
logging.file=D:/mylog/log.log
配置日志级别:
logging.level.org.springframework.web=DEBUG
springboot深入学习(一)-----springboot核心、配置文件加载、日志配置的更多相关文章
- Selenium2学习(十四)-- 加载Firefox配置
前言有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 . 加载浏览器配置,需要用FirefoxProfile(profile_ ...
- Nginx 重新加载日志配置
最近在写一个nginx日志的切割脚本,切割完后,发现可以不重启服务,而直接重新加载日志配置文件的命令 [ kill -USR1 $nginx.pid ],但是不知道 -USR1这个参数是什么意 ...
- springboot启动流程(四)application配置文件加载过程
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 触发监听器加载配置文件 在上一篇文章中,我们看到了Environment对象的创建方法.同时也 ...
- Springboot学习04-默认错误页面加载机制源码分析
Springboot学习04-默认错误页面加载机制源码分析 前沿 希望通过本文的学习,对错误页面的加载机制有这更神的理解 正文 1-Springboot错误页面展示 2-Springboot默认错误处 ...
- springboot的yaml基础语法与取值,配置类,配置文件加载优先级
1.基本语法k:(空格)v:表示一对键值对(一个空格必须有):以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的属性和值也是大小写敏感: server: port: 8081 pat ...
- SpringBoot系列之配置文件加载位置
SpringBoot系列之配置文件加载位置 SpringBoot启动会自动扫描如下位置的application.properties或者application.yml文件作为Springboot的默认 ...
- SpringBoot——配置文件加载位置及外部配置加载顺序
声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...
- springboot错误: 找不到或无法加载主类
一:当在eclipse启动spring boot项目时出现问题: springboot错误: 找不到或无法加载主类 解决办法: 1,通过cmd命令行,进入项目目录进行,mvn clean instal ...
- Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)
千里之行,始于足下.关注公众号[BAT的乌托邦],有Spring技术栈.MyBatis.JVM.中间件等小而美的原创专栏供以免费学习.分享.成长,拒绝浅尝辄止.本文已被 https://www.you ...
- asp.netcore 深入了解配置文件加载过程
前言 配置文件中程序运行中,担当着不可或缺的角色:通常情况下,使用 visual studio 进行创建项目过程中,项目配置文件会自动生成在项目根目录下,如 appsettings.json, ...
随机推荐
- 截图原理(一)——Android自动化测试学习历程
把两节的内容汇总起来,第一节讲的是如何在apk中直接进行截屏,用到了Robotium的Solo类的takeScreenShot方法,有一个小的demo,以及从方法一直往里钻,知道它具体是怎么进行截屏的 ...
- [剑指Offer]34-二叉树中和为某一值的路径
题目链接 https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&t ...
- 脚手架搭建vue框架
一. node安装 1)如果不确定自己是否安装了node,可以在命令行工具内执行: node -v (检查一下 版本): 2)如果 执行结果显示: xx 不是内部命令,说明你还没有安装node , ...
- C#判断文件和文件夹是否存在 不存在则创建
using System.IO;string path = @"D:\accountDaoRu\"; if (Directory.Exists(path) == fa ...
- dUMP:A new value is to be assigned to the field "<L_BOX>"
DUMP: A new value is to be assigned to the field "<L_BOX>", although this field is e ...
- java_12多态
1多态概述 多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样 ...
- springmvc入门(1)
一..springmvc框架 1.什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合.springmvc是一个基于mv ...
- Couchbase学习和使用
Couchbase介绍 couchbase的关键有两点:延后写入和松散存储.延后写入,顾名思义,couchbase在对数据进行增删时会先体现在内存中,而不会立刻体现在硬盘上,从内存的修改到硬盘的修改这 ...
- 基于RBAC权限验证, 中间价middleware实现, views 登录视图代码
废话不多说 上代码: 基础实现: rom django.shortcuts import HttpResponse, redirect, render from django.http import ...
- three.js raycaster射线碰撞的坑 (当canvas大小 不是屏幕大小是解决拾取物体的办法)
这里只是记录一下坑,方便查阅,内容主要援引自:three.js Raycaster 射线拾取 canvas不占满整屏时射线拾取存在偏差 1. 世界坐标系: 世界坐标系位于屏幕的中心(0,0,0),往右 ...