一、@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核心、配置文件加载、日志配置的更多相关文章

  1. Selenium2学习(十四)-- 加载Firefox配置

    前言有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 . 加载浏览器配置,需要用FirefoxProfile(profile_ ...

  2. Nginx 重新加载日志配置

    最近在写一个nginx日志的切割脚本,切割完后,发现可以不重启服务,而直接重新加载日志配置文件的命令 [   kill -USR1 $nginx.pid   ],但是不知道 -USR1这个参数是什么意 ...

  3. springboot启动流程(四)application配置文件加载过程

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 触发监听器加载配置文件 在上一篇文章中,我们看到了Environment对象的创建方法.同时也 ...

  4. Springboot学习04-默认错误页面加载机制源码分析

    Springboot学习04-默认错误页面加载机制源码分析 前沿 希望通过本文的学习,对错误页面的加载机制有这更神的理解 正文 1-Springboot错误页面展示 2-Springboot默认错误处 ...

  5. springboot的yaml基础语法与取值,配置类,配置文件加载优先级

    1.基本语法k:(空格)v:表示一对键值对(一个空格必须有):以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的属性和值也是大小写敏感: server: port: 8081 pat ...

  6. SpringBoot系列之配置文件加载位置

    SpringBoot系列之配置文件加载位置 SpringBoot启动会自动扫描如下位置的application.properties或者application.yml文件作为Springboot的默认 ...

  7. SpringBoot——配置文件加载位置及外部配置加载顺序

    声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...

  8. springboot错误: 找不到或无法加载主类

    一:当在eclipse启动spring boot项目时出现问题: springboot错误: 找不到或无法加载主类 解决办法: 1,通过cmd命令行,进入项目目录进行,mvn clean instal ...

  9. Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)

    千里之行,始于足下.关注公众号[BAT的乌托邦],有Spring技术栈.MyBatis.JVM.中间件等小而美的原创专栏供以免费学习.分享.成长,拒绝浅尝辄止.本文已被 https://www.you ...

  10. asp.netcore 深入了解配置文件加载过程

    前言     配置文件中程序运行中,担当着不可或缺的角色:通常情况下,使用 visual studio 进行创建项目过程中,项目配置文件会自动生成在项目根目录下,如 appsettings.json, ...

随机推荐

  1. 【转】收集 jetty、tomcat、jboss、weblogic 的比较

    jetty Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开 ...

  2. f5冗余BIG-IP系统的安装

    1.设备服务群集 •一个系列的BIG-Ips彼此互相支持DSC •每一台BIG-IP 自己生成一个Device Object •不同设备的信息 •建立信任证书 •在local device上设置Dev ...

  3. bbs项目引入富文本编辑器和处理xss攻击和文章预览

    一.富文本编辑上传文章和图片 富文本编辑器我们使用kindeditor,我们首先去官网下载,然后解压,放到我们的static的目录中 然后我们在html中这样使用富文本编辑器 <!DOCTYPE ...

  4. war包内更新文件

    感谢@这个博客提供的分享 亲测有效,原文: 1.如果要替换的文件直接在war包的根目录(一级目录)下,直接使用jar uvf命令替换即可 如:替换a.war中b.xml文件 jar uvf a.war ...

  5. 小白鼠排队(map容器插入数据的四种方法)

    题目描述 N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色.帽子的颜色用“red”,“ ...

  6. Linux下Python2升级Python3

    Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...

  7. Memcached使用与纠错(附代码和相关dll)

    今天没事研究一下,谁想到遇到了几个dll找不到,网上也不好找到,索性功夫不负有心人.贴出代码和相关的dll Memcached代码:(网上都是的,很多人都保存了这个代码) using Memcache ...

  8. sqlite c#

    https://www.cnblogs.com/icebutterfly/p/7850689.html https://www.cnblogs.com/sdadx/p/7127098.html

  9. Linux下实时查看GPU状态

    参考链接: http://blog.csdn.net/yao_yao_2015/article/details/53404389 1. 显示当前GPU使用情况 Nvidia自带了一个nvidia-sm ...

  10. Python使用filetype精确判断文件类型 (文件类型获取)

    filetype.py Small and dependency free Python package to infer file type and MIME type checking the m ...