Spring boot (一):入门篇
-
Spring boot 简介
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.
上面是引用spring boot官方的话,简单来说spring boot是所有基于spring 应用的起点,spring boot的设计初衷就是想让开发者尽可能快地把项目运行起来,而且尽可能减少你的配置文件。
-
Spring boot 优势
其实上面的简介已经可以看出了spring boot的优势,主要就是一个——快!
回想起传统的一个web项目,即使是最简单的一个web项目,需要什么步骤呢?
1) 配置web.xml
2) 配置spring 文件,注入各种bean
3) 配置日志文件
...
如果涉及数据库和缓存还要配置数据库事务,缓存配置等等...构建完成后配置tomcat运行发布。
可能简简单单一个在线注册只需要填写用户名和电话的系统就配置就可能花你一天的时间了,这就是传统基于spring的web框架的弊端——配置太繁琐!
那么有了spring boot搭建一个web 项目需要做什么呢?
1.配置pom.xml,引入需要的jar包和构建命令。(通常做好一个模板就可以直接copy,不用每次都写)
2.编写你的controller。
3.运行spring-boot :run 把项目跑起来。
这里只需要三步就能构建一个简单的web项目,可见spring boot的简洁和简便,而且因为自带tomcat,更加让开发人员免去部署tomcat等麻烦。
-
项目结构
如上图所示,Spring Boot的基础结构共三个文件:
src/main/java 程序开发以及主程序入口
src/main/resources 配置文件
src/test/java 测试程序
搭建入门
- 新建一个maven project新建一个maven project,然后选择“maven-archetype-quickstart”,然后输入你的项目名字。
2. 配置好pom.xml
打开pom.xml,加上以下代码:
<!-- spring boot 基本环境 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.1.RELEASE</version> </parent> <!--web应用基本环境配置 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- 打包spring boot应用 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
3. 打开App.java,加上
@SpringBootApplication
注解,然后把main函数改成
public static void main( String[] args ) { SpringApplication.run(App.class, args); }
到这步springboot 的配置就已经完成,可以开始写你的业务层,编写一个helloword,然后就可以 用 spring-boot:run 运行。
@RestController
public class HelloWorld {
@RequestMapping("/hello")
public String hello(){
return "Hello Spring Boot !";
}
}
打开浏览器输入http://localhost:8080/hello 即可见到 “Hello Spring Boot !”.
-
重点详解
- spring-boot-starter :核心模块,包括自动配置支持、日志和YAML。
- spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito。
- @RestController : controller里面的方法都以json格式输出,相当于 @Controller + @ResponseBody
- @SpringBootApplication : 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration @EnableAutoConfiguration @ComponentScan , 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 com.springboot.demo 包)
GitHub 地址:https://github.com/chris-study-practice/springboot-study-demo
-
注意事项:
1. Spring Boot的被@SpringBootApplication注解的App.java必须放在所有的RestController的根路径的package下.