1.SpringBoot核心相关内容

1.1入口类

SpringBoot通常有一个入口类*Application,内部有一个main方法,是启动SpringBoot的入口。使用@SpringBootApplication注解,并包含main方法。

1.2常见注解

@SpringBootApplication 是SpringBoot的核心注解,用于标注程序时一个SpringBoot程序。它是一个组合注解,由多个注解组合而成。

  @SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration

@SpringBootConfiguration 一个组合注解,相当于传统的xml配置文件,包含@Configuration注解。在Spring Boot项目中推荐使用

  @SpringBootConfiguration替代@Configuration。

@EnableAutoConfiguration 启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项,这也是

  springboot 的核心注解之一,我们只需要将项目需要的依赖包加入进来,它会自动帮我们配置这个依赖需要的基本配置。比如我们的项

  目引入了spring-boot-starter-web依赖,springboot 会自动帮我们配置tomcat 和 springmvc。

@ComponentScan组件扫描,可发现和自动装配一些bean。默认扫描@SpringBootApplication类所在包的同级目录及它的子目录

  设置不自动装配:

  @SpringBootApplication(exclude = {JpaRepositoriesAutoConfiguration.class, RedisAutoConfiguration.class})

  注解内部将不需要自动配置的依赖通过exclude参数指定即可,可以指定多个类

@Bean: 注解在方法上,声明当前方法返回一个Bean

@PostConstruct:注解在方法上,构造函数执行后执行。

@PreDestroy: 注解在方法上,在Bean销毁前执行。
@Lazy(true):  延迟初始化

@Scope:注解在类上,描述spring容器如何创建Bean实例。
@Profile:注解在方法类上 在不同情况下选择实例化不同的Bean 特定环境下生效

@Import:用来导入其他配置类。

@ImportResource:用来加载xml配置文件。

2.核心配置文件

2.1yml和properties

SpringBoot使用一个全局配置文件application.properties或者application.yml。properties配置文件见附件。

yml类似于xml,但是yml没有xml中的 标签,而是通过空格来表示层级结构:

#相当于 properties 中的server.port=80

server:
port: 80

#代表 spring.jpa.下面的属性 每个:之后的代表当前属性下的属性

spring:
jpa:
generate-ddl: false
show-sql: true
hibernate:
ddl-auto: update
database: mysql

SpringBoot的配置文件可以放在以下几个地方:

外置,在相对于应用程序运行目录的/congfig子目录里。(resources/config)

外置,在应用程序运行的目录里(resources)

内置,在config包

内置,在Classpath根目录

这个列表按照优先级排序,也就是说,src/main/resources/config下application.properties覆盖src/main/resources下application.properties中相同的属性

如果在相同优先级位置同时有application.properties和application.yml,那么application.properties里的属性里面的属性就会覆盖application.yml

如果自己定义了其它的配置文件,如test.properties,可以使用@PropertiesSource注解指定加载配置文件。

@PropertySource("classpath:test.properties")

2.2profile多环境配置

当应用程序需要部署到不同运行环境时,一些配置细节通常会有所不同,最简单的比如日志,生产日志会将日志级别设置为WARN或更高级别,并将日志写入日志文件,而开发的时候需要日志级别为DEBUG,日志输出到控制台即可。

如果按照以前的做法,就是每次发布的时候替换掉配置文件,这样太麻烦了,Spring Boot的Profile就给我们提供了解决方案,命令带上参数就搞定。

切换的配置文件必须符合application-xx的命名,其中xx和application.properties中指定的属性值对应,在application.properties中进行如下配置,系统将会使用application-dev.properties中的配置:

spring.profiles.active=dev

SpringBoot基础入门的更多相关文章

  1. springBoot 基础入门

    来处:是spring项目中的一个子项目 优点  (被称为搭建项目的脚手架)         减少一切xml配置,做到开箱即用,快速上手,专注于业务而非配置     从创建项目上: -- 快速创建独立运 ...

  2. 分布式-springboot基础入门

    B站播放地址:https://www.bilibili.com/video/BV1PE411i7CV?t=51 博客地址:https://www.cnblogs.com/hellokuangshen/ ...

  3. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  4. SpringBoot之基础入门-专题一

    SpringBoot之基础入门-专题一 一.Spring介绍 1.1.SpringBoot简介 在初次学习Spring整合各个第三方框架构建项目的时候,往往会有一大堆的XML文件的配置,众多的dtd或 ...

  5. springBoot基础

    开始之前最基础的东东here 官网:http://projects.spring.io/spring-boot/ 基础快速构建:http://start.spring.io/ 松哥的博客:http:/ ...

  6. Spring Boot 2.x零基础入门到高级实战教程

    一.零基础快速入门SpringBoot2.0 1.SpringBoot2.x课程全套介绍和高手系列知识点 简介:介绍SpringBoot2.x课程大纲章节 java基础,jdk环境,maven基础 2 ...

  7. SpringBoot 基础(二)

    目录 SpringBoot基础(二) 一.操作数据库 1. SpringBootJdbc 2. SpringBoot 整合 Mybatis 3. SpringBott 使用JPA 二.使用 Thyme ...

  8. [转]小D课堂 - 零基础入门SpringBoot2.X到实战_汇总

    原文地址:https://www.cnblogs.com/wangjunwei/p/11392825.html 第1节零基础快速入门SpringBoot2.0 小D课堂 - 零基础入门SpringBo ...

  9. 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总

    第1节零基础快速入门SpringBoot2.0 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1.SpringBoot2.x课程介绍和高手系 ...

随机推荐

  1. 学习CSS布局 - position例子

    position例子 通过具体的例子可以帮助我们更好地理解“position”.下面是一个真正的页面布局. 结果: 代码如下: <!DOCTYPE html> <html lang= ...

  2. 如何屏蔽SkylineGlobe提供的三维地图控件上的快捷键

    SkyllineGlobe提供的 <OBJECT ID=" TerraExplorer3DWindow" CLASSID="CLSID:3a4f9192-65a8- ...

  3. C#以管理员用户打开某个程序

    static void Main(string[] args) { string path = @"C:\Windows\AppPatch\AppLoc.exe"; Process ...

  4. curl命令行

    curl命令行--强大的工具.通过各种参数,支持各种方式. 写几个常用的命令: 请求到的网站html curl http://www.baidu.com 比如想在命令行上请求一个接口,post过去几个 ...

  5. Zookeeper-基本概念

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务.它是一个典型的分布式数据一致性的解决方案,分布式应用可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理 ...

  6. Luogu P2312 解方程

    据大佬的说法这种大力乱搞题出在除NOIp以外的任何比赛都是很好的然而就是被出在了NOIp 首先对于想直接上高精的同学,我还是祝你好运吧. 我们考虑一个十分显然的性质,若\(a=b\),则对于任一自然数 ...

  7. 七年一冠、IG牛13的背后是什么!

    最近忙着看S8世界总决赛,博客荒废了近一个月,后续步入正轨.   2018年11月3日.S8世界总决赛.中国终于夺得了S系列赛的总冠军. “IG牛逼”也开始刷爆社交圈,对于在S3入坑的我来说,也弥补上 ...

  8. item 2: 理解auto类型的推导

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你已经读过item 1的模板类型推导,你已经知道大部分关于au ...

  9. 初识 tk.mybatis.mapper 通用mapper

    在博客园发表Mybatis Dynamic Query后,一位园友问我知不知道通用mapper,仔细去找了一下,还真的有啊,比较好的就是abel533写的tk.mybatis.mapper. 本次例子 ...

  10. D. Boxes Packing

    链接 [http://codeforces.com/contest/1066/problem/D] 题意 题目大意 n个物品m个篮子每个篮子容量为k 每个物品重量为a[i] 问能装多少物品 这个人是强 ...