目录:
2.1、如何使用Spring开发一个"HelloWorld"的web应用
1、什么是spring boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
2、使用spring boot有什么好处
2.1、如何使用Spring开发一个"HelloWorld"的web应用:
- 创建一个web项目并且导入相关jar包。SpringMVC Servlet
- 创建一个web.xml
- 编写一个控制类(Controller)
- 需要一个部署web应用的服务器 如tomcat
2.2、Spring Boot特点:
2.3.1、Spring Boot的优点:
- 独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
-
简化配置
spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
+- org.springframework.boot:spring-boot-starter-web:jar:1.5.6.RELEASE:compile
+- org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.6.RELEASE:compile
| +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.16:compile
| +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.16:compile
| \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.16:compile
+- org.hibernate:hibernate-validator:jar:5.3.5.Final:compile
| +- javax.validation:validation-api:jar:1.1.0.Final:compile
| +- org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
| \- com.fasterxml:classmate:jar:1.3.3:compile
\- org.springframework:spring-webmvc:jar:4.3.10.RELEASE:compile
-
自动配置
Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
-
无代码生成和XML配置
Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。
-
应用监控
Spring Boot提供一系列端点可以监控服务及应用,做健康检测。
2.3.2、Spring Boot的缺点:
Spring Boot虽然上手很容易,但如果你不了解其核心技术及流程,所以一旦遇到问题就很棘手,而且现在的解决方案也不是很多,需要一个完善的过程。
2.3、核心注解类说明
1、@RestController
就是@Controller+@ResponseBody组合,支持RESTful访问方式,返回结果都是json字符串
2、@SpringBootApplication
就是@SpringBootConfiguration+@EnableAutoConfiguration+
@ComponentScan等组合在一下,非常简单,使用也方便
3、@SpringBootTest
Spring Boot版本1.4才出现的,具有Spring Boot支持的引导程序(例如,加载应用程序、属性,为我们提供Spring Boot的所有精华部分)
关键是自动导入测试需要的类。
3、构建SpringBoot项目及启动器讲解
3.1、使用Maven构建SpringBoot项目
3.2、pom.xml
<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>com.nari</groupId>
<artifactId>01-springboot-helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<!-- 修改jdk版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springBoot的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
3.3、SpringBoot启动器
所谓的springBoot启动器其实就是一些jar包的集合。SprigBoot一共提供44启动器。
1、spring-boot-starter-web
支持全栈式的web开发,包括了romcat和springMVC等jar
2、spring-boot-starter-jdbc
支持spring以jdbc方式操作数据库的jar包的集合
3、spring-boot-starter-redis
支持redis键值存储的数据库操作
4、Spring Boot入门HelloWorld
4.1、返回HelloWorld的Controller
package com.myron.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* SpringBoot HelloWorld
* @author Administrator
*
*/
//@Controller
//@ResponseBody
@RestController //相当于@Controller+@ResponseBody
public class HelloWorldController {
@RequestMapping("/hello")
public Map<String, Object> showHelloWord() {
HashMap<String, Object> map = new HashMap<>();
map.put("msg", "HelloWorld");
return map;
}
}
4.2、SpringBoot 编写启动类
package com.myron;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Spring Boot 启动类:
* @author Administrator
*
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
运行Application.java,访问localhost:8080/hello:
4.3、关于编写启动器需要注意的问题
启动器存放的位置。启动器可以和controller位于同一个包下,或者位于controller的上一级包中,但是不能放到controller的平级以及子包下。