刚开始知道Spring Boot的时候,只是大概知道它是一个更快更方便的工具。Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring应用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。

1.1 Spring Boot是什么?

SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。SpringMVC是控制层。

1.2 Spring Boot的主要优点?

  1. 为所有Spring开发者更快的入门
  2. 开箱即用,提供各种默认配置来简化项目配置
  3. 内嵌式容器简化Web项目
  4. 没有冗余代码生成和XML配置的要求
    下面就让我们来完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

1.3 系统要求:

Java1.8及以上
Spring Framework 4.1.5及以上
Spring Boot 2.0

1.4.SpringBoot和SpringMVC区别:

SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置WEB容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。SpringMVC是控制层。

1.5.SpringBoot和SpringCloud区别:

SpringCloud依赖与SpringBoot组件,使用SpringMVC编写Http协议接口,同时SpringCloud是一套完整的微服务解决框架。

2.1.创建一个Maven工程

名为”springboot” 类型为Jar工程项目。

2.2.引入pom依赖文件


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
</dependency>
2.0.0.RELEASE
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>


spring-boot-starter-parent作用
在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么stater poms,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。
spring-boot-starter-web作用
springweb 核心组件
spring-boot-maven-plugin作用
如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven 的spring-boot:run的话是不需要此配置的。(我在测试的时候,如果不配置下面的plugin也是直接在Main中运行的。)

2.3.编写helloword服务

创建HelloController类,内容如下:

@RestControllerbr/>@EnableAutoConfiguration
public class HelloController {

 @RequestMapping("/hello")
 public String index() {
     return "Hello World";
 }

 public static void main(String[] args) {
     SpringApplication.run(HelloController.class, args);
}

}

2.4.@RestController

加上RestController 表示修饰该Controller所有的方法返回JSON格式,直接可以编写Restful接口

2.5.@EnableAutoConfiguration

注解:作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置
这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。

2.6.SpringApplication启动类

SpringApplication.run(HelloController.class, args);
标识为启动类

2.7.SpringBoot启动方式1

启动主程序,打开浏览器访问http://localhost:8080/index
可以看到页面输出Hello World

2.8.SpringBoot启动方式2

---- 控制器扫包范围
@ComponentScan(basePackages = "com.guahao.controller")

@EnableAutoConfiguration
public class App {

 public static void main(String[] args) {
 SpringApplication.run(App.class, args);
}

}

2.9.SpringBoot启动方式3------@SpringBootApplication

@SpringBootApplication 被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解
扫包范围:在启动类上加上@SpringBootApplication注解,当前包下或者子包下所有的类都可以扫到。

3.1.渲染Web页面

在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢?--模板引擎--在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。
Spring Boot提供了默认配置的模板引擎主要有以下几种:
• Thymeleaf
• FreeMarker
• Velocity
• Groovy
• Mustache
Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置
当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。

3.2.使用Freemarker模板引擎渲染web视图,首先引入pom文件

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

3.3.后端代码

在src/main/resources/创建一个templates文件夹,后缀为*.ftl。

@RequestMapping("/index")
public String index(Map map) {
map.put("name","美丽的天使...");
return "index";
}

3.4.前端代码

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
</head>
<body>
${name}
</body>
</html>