在前面的博文中,已经演示过springboot与Mybatis集成的实例,本篇再来探讨一下SpringBoot的基础。
一。关于SpringBoot
SpringBoot可以基于Spring轻松创建可以“运行”的、独立的、生产级的应用程序。大多数Spring Boot应用程序需要很少的Spring配置。您可以使用Spring Boot创建可以使用java -jar
或传统 war 包部署启动的Java应用程序。
SpringBoot主要目标是:
- 为所有的Spring开发者提供一个更快,更广泛接受的入门体验。
- 开始使用开箱即用的配置(极少配置甚至不用配置),所有配置都有默认值,同时也可以根据自己的需求进行配置。
- 提供大量项目中常见的一系列非功能特征(例如嵌入式服务器,安全性,指标,运行状况检查,外部化配置)。
- 绝对没有代码生成,也不需要XML配置。
总之就一句话,启动更方便,配置量更少
系统要求:虽然您可以在Java 6或7上使用 Spring Boot,但是建议用Java 8。
二。添加对spring-boot的支持
maven:
<dependencyManagement> <dependencies> <!-- Override Spring Data release train provided by Spring Boot --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-releasetrain</artifactId> <version>Fowler-SR2</version> <scope>import</scope> <type>pom</type> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.8.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
gradle:
buildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { maven { url = "http://maven.aliyun.com/nexus/content/groups/public" } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'com.bdqn.lyrk.study' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { maven { url = "http://maven.aliyun.com/nexus/content/groups/public" } } dependencies { compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test') }
注意在spring-boot里有一个叫做启动器的概念,命名是以spring-boot-starter-xxx打头 这个命名结构旨在帮助你快速找到一个启动器。上述配置中会有一个嵌入式servlet容器,这样在程序启动时可以自动运行servlet容器
三。关于属性文件
SpringBoot一个最大的好处就是对集成的企业级应用工程都提供了默认配置,绝大多数情况下我们用默认的配置就好了,如果我们想改变配置就需要SpringBoot的属性文件了。
-
SpringApplication将从以下位置的application.properties或者application.yml文件中加载属性,并将它们添加到Spring Environment中:
- 当前目录的/config子目录
- 当前目录
- classpath中/config包
- classpath root路径
该列表按优先级从高到低排序。
四。SpringBoot启动实例
package com.bdqn.lyrk.study.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author chen.nie */ @SpringBootApplication public class SpringBootRunner { public static void main(String[] args) throws Exception { SpringApplication.run(SpringBootRunner.class, args); } }
经过对比我们发现,现在启动Spring更加简单了,在这里我们注意@SpringBootApplication注解,它相当于使用@Configuration,@EnableAutoConfiguration和@ComponentScan和他们的默认属性,熟悉Spring框架的朋友对第一个和第三个注解应该不陌生,@EnableAutoConfiguration这个注解通常放置在主类上,它隐式定义了某些项目的基本“搜索包”。
注意:springboot的启动类必须和其他加spring注解的包在同一个目录下
五。SpringBoot日志记录
Spring Boot使用Commons Logging进行所有内部日志记录,但基础日志实现开放。 默认配置提供了Java Util Logging,Log4J2和Logback。默认情况下,如果使用’Starters’,将会使用Logback。在配置文件里,是以logging.xxx打头,注意:SpringBoot默认只将日志输出到控制台,我们可以做以下的配置来输出到文件中。
配置日志级别:
logging: level: debug path: ${user.home}/logs/${spring.application.name}
当然我么可以以logging.level.<logger-name>=<level>的方式配置对应的日志级别,root的日志级别可以设置为:logging.level.root=值