1、什么是Spring boot ?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot 的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。
Spring Boot 默认配置了很多框架的使用方式,就像 Maven 整合了所有的 jar 包一样,Spring Boot 整合了所有框架,能够:
1)Spring Boot 使编码变简单
2)Spring Boot 使配置变简单
3)Spring Boot 使部署变简单
4)Spring Boot 使监控变简单
2、使用spring boot有什么好处?
回顾一下我们以前使用Spring框架的过程:
1)配置web.xml,加载spring和spring mvc
2)配置数据库连接、配置spring事务
3)配置加载配置文件的读取,开启注解
4)配置日志文件
...
配置完成之后部署tomcat 调试...可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。好了,现在这些,都可以省去了。我们仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!
所以,Spring Boot的好处就是:
1)自动配置:Spring Boot能自动提供相关配置,能够让人们简单、快速、方便地搭建项目;
2)起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
3)命令行界面:Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
4)Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。
3、如何利用Spring Boot搭建项目呢?
2)选择构建工具Maven Project、Spring Boot版本以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:
3)点击Generate Project下载项目压缩包
4)解压后,使用eclipse或者Idea导入即可。
4、项目结构介绍
Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的,放置在pom.xml文件中,常用模块:
spring-boot-starter-logging :使用 Spring Boot 默认的日志框架 Logback。
spring-boot-starter-log4j :添加 Log4j 的支持。
spring-boot-starter-web :支持 Web 应用开发,包含 Tomcat 和 spring-mvc。
spring-boot-starter-tomcat :使用 Spring Boot 默认的 Tomcat 作为应用服务器。
spring-boot-starter-jetty :使用 Jetty 而不是默认的 Tomcat 作为应用服务器。
spring-boot-starter-test :包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
spring-boot-starter-aop :包含 spring-aop 和 AspectJ 来支持面向切面编程(AOP)。
spring-boot-starter-security :包含 spring-security。
spring-boot-starter-jdbc :支持使用 JDBC 访问数据库。
spring-boot-starter-redis :支持使用 Redis。
spring-boot-starter-data-mongodb :包含 spring-data-mongodb 来支持 MongoDB。
spring-boot-starter-data-jpa :包含 spring-data-jpa、spring-orm 和 Hibernate 来支持 JPA。
spring-boot-starter-amqp :通过 spring-rabbit 支持 AMQP。
spring-boot-starter-actuator : 添加适用于生产环境的功能,如性能指标和监测等功能。
PS:Spring Boot配置文件建议放在更目录下,用于一些基础配置
在pom.xml中添加web模块,代码如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
写一个简单的HelloWorld,代码如下:
package com.xf.springboot.actuator.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableAutoConfiguration
@ComponentScan(basePackages = { "com.xf.springboot" })
public class RestfulApiWebDemo {
@RequestMapping("/home")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(RestfulApiWebDemo.class, args);
}
}
启动项目,输入地址:http://localhost:8080/home
注解讲解:
@RestController --相当于@ResponseBody + @Controller合在一起,默认Json解析
单元测试代码:
import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
@SpringApplicationConfiguration (classes = RestfulApiWebDemo.class)
public class TmallApplicationTests {
@Before
public void init() {
System.out.println("Junit开始-----------------");
}
@After
public void after() {
System.out.println("Junit结束-----------------");
}
}
注解讲解:
@RunWith(SpringJUnit4ClassRunner.class): 引入Spring对JUnit4的支持。
@SpringApplicationConfiguration (classes = RestfulApiWebDemo.class): 指定Spring Boot的启动类。
@WebAppConfiguration: 开启Web应用的配置,用于模拟ServletContext。
@Before: JUnit中定义在测试用例@Test内容执行前预加载的内容,这里用来初始化对HelloController的模拟。