Spring Boot (一) 初识了解
这段时间公司因为要拆分需求,所以就借此重新搭建了一个新框架,当然新框架的合成铁定是离不开spring了,不过spring的各种配置文件,多亏是了解的差不多,能够互相变通的配置,度过了一大难关。天天和spring框架打交道,比如,SpringMVC,springData,springCloud,以及我们今天了解的springBoot,等都是我们较常用的框架。虽然spring是我们最喜欢的框架之一,但是随着新技术飞速发展,脚本横行霸道的时代,尤其是spring繁琐的xml融入以及配置以及与第三方框架的各种整合问题,已经在燃烧了程序员们的耐心,或许这就是spring团队开发springBoot的初音吧,初恋纵然好,但是现任也不错,就看大家乐不乐意更换新女友了。不管更不更换,先是对新成员进行一下基本的了解吧。
什么是spring boot?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring boot的特性直白理解
为基于spring的开发提供更快的入门体验;开箱即用,无代码生成,也无需XML配置;springboot并非是spring的功能增强,而仅仅是对spring使用上的一种简化。
Spring boot的实例讲解
环境准备
1、idea开发环境,我使用的idea开发;
2、配置jdk,版本,必须大于或者等于1.7,我使用的1.7;
3、如果使用的idea开发,则默认有maven配置;如果使用eclipse系列的话,还需配置maven 3.0+;
pom文件引入对应的maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<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.springBoot</groupId>
<artifactId>spring-boot-hello</artifactId>
<version>1.0-SNAPSHOT</version>
<!--springBoot父节点依赖,引入这个之后相关的引用就不需要加version配置,spring boot会自动选择最合适的版本进行添加-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--spring-boot-starter-web,MVC,AOP的依赖包....-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
</dependencies>
</project>
建立类HelloController类以及APP类
package springboot;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
* Create with IntelliJ IDEA
* User: huoyajing
* Date: 2017/4/27
* Time: 14:57
* To change this template use File | Settings | File Templates.
*/
/**
* @RestController等价于@Controller和@RequestBody
*/
@RestController
public class HelloController {
/**
* 我们使用RequestMapping建立请求映射
* http://127.0.0.1:8080/hello
* @return
*/
@RequestMapping("/Hello")
public String hello(){
return "hello";
}
}
package springboot;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.ArrayList;
import java.util.List;
/**
* Create with IntelliJ IDEA
* User: huoyajing
* Date: 2017/4/27
* Time: 15:14
* To change this template use File | Settings | File Templates.
*/
/**
* 在这里使用 @SpringBootApplication,来证明这是spring boot的应用程序
*/
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
直接右击,直接main方法则可以看到成功.
在执行的过程中,遇到了一个错误,导致执行失败,错误原因如下:
这到底是因为什么原因导致的呢?主要就是自己没有创建 文件夹,解决办法,直接配置一个路径,放置即可解决问题,如下图:
问题解决之后,用浏览器页面执行成功效果:
一个pom文件,两个依赖,几行代码就这样形成了一个小程序。对于spring boot而言,其实起到作用的依旧是spring的老方式,通过各种注解实现共通。
- 从app类的main方法入口分析起,SpringApplication是Spring Boot框架中描述Spring应用的类,通过run方法实现了spring的上下文;除此之外,它会自动扫描当前应用类上的依赖。对spring-boot-starter-web的maven依赖,可以满足我们,MVC,AOP的依赖包…..。对于spring
boot而言,他会给我们判断这是一个web应用,并启动一个Servlet来处理http请求。 - @RestController是一种特殊的Controller,Servlet容器会将其收到的http请求根据路径分发给对应的@RestController进行处理,然后将返回值作为HTTP
Response的Body返回值返回给浏览器。 - @RequestMapping就是建立了一个请求映射,表明该方法处理那些URL对应的HTTP请求。
我们可以完全通过@RequestMapping匹配多个URL,实现不同的功能。
这样一个简单的spring boot框架就搭建完工了,由它带领我们走入神奇的spring boot。