一、SpringBoot的优点
Spring Boot是为简化Spring项目配置而生,使用它使得jar依赖管理以及应用编译和部署更为简单。Spring Boot提供自动化配置,使用Spring Boot,你只需编写必要的代码和配置必须的属性。
使用Spring Boot,只需20行左右的代码即可生成一个基本的Spring Web应用,并且内置了tomcat,构建的fat Jar包通过Java -jar就可以直接运行。
如下特性使得Spring Boot非常契合微服务的概念,可以结合Spring Boot与Spring Cloud和Docker技术来构建微服务并部署到云端:
一个可执行jar即为一个独立服务很容易加载到容器,每个服务可以在自己的容器(例如docker)中运行
通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展也更容易
简单而言,即Spring Boot使编码更简单,使配置更简单,使部署更简单,使监控更简单。!
Spring boot通过spring boot starter项目管理其提供的所有依赖的版本,当升级spring boot时,这些依赖的版本也会随之升级。个人无需指定版本号。
但是也可以自定义版本号覆盖springboot的默认值。每个版本的boot都有对应的base spring version,不建议明确地指定spring版本。
二、SpringBoot简单入门
1.创建maven项目
2.maven中导入SpringBoot依赖包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SpringBootSimple</groupId>
<artifactId>SpringBootSimple</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- springboot依赖包 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
<!-- 添加spring-boot-starter-web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 可执行jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
引入之后发现项目有小红叉
他说项目的pom.xml配置不是最新的 而且java版本是1.5这时我们需要修改版本和跟新项目
修改Java版本
<!-- 更改java版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
然后跟新项目
跟新后小红叉解决了 java版本也改变了
然后创建一个启动类
package cn.xxb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AppRun {
public static void main(String[] args) {
SpringApplication.run(AppRun.class, args);
}
}
在创建一个controller进行测试
package cn.xxb.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class IndexTestController {
@RequestMapping("/hello")
@ResponseBody
public String getIndex(){
return "hello SpringBoot!";
}
}
运行启动类
然后用页面访问localhost:8080/hello (springboot集成的端口默认是8080)
能访问到此界面表示成功了
然后我们了解@SpringBootApplication这个注解是什么意思
@SpringBootAppliction其实是
@EnableAutoConfiguration,@ComponentScan,@configuration
这三个注解加起来的
1.@Configuration 是一个类级注释,指示对象是一个bean定义的源。@Configuration 类通过 @bean 注解的公共方法声明bean
2.@EnableAutoConfiguration:启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。自动配置类通常采用基于你的 classpath 和已经定义的 beans 对象进行应用。被 @EnableAutoConfiguration 注解的类所在的包有特定的意义,并且作为默认配置使用
3.@configuration:@Configuration是注解的类配置组件扫描指令
当把启动类放在cn.xxb包下面 它就会扫描cn.xxb下面的所有
Springboot配置文件
在springboot里面SpringBoot推荐使用yaml格式的配置
yaml与properties的格式
properties的格式:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
yaml的格式
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
当同时使用yaml与properties配置文件时他们都配置了同一个时会优先选择使用properties的配置