Spring Boot:

一、什么是Spring Boot?

我们知道前面学习的Spring框架需要写大量的XML文件去配置,而繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低

简单的说: Spring Boot就是为了解决Spring缺点而生的,主要是简化了使用 Spring 的难度,去掉了繁琐的配置
Spring Boot的核心功能: 起步依赖,自动配置。起步依赖就是将具备某种功能的坐标打包到一起, 并解决了Spring的jar包冲突问题。自动配置就是Spring Boot在底层给我们自动做了一些配置,所以spring Boot项目不编写配置文件也可以正常运行。


二、为什么学习Spring Boot?

Spring Boot官网:http://spring.io/

通过官网可以看到这样一张图:

Spring Boot: Build Anything——构建任何内容
Spring Cloud: Coordinate Anything——协调任何事情
Spring Cloud Data Flow: Connect everything——连接任何东西

简单的说: Spring Boot旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置(在后面案例中就可以体会到)


三、如何快速创建Spring Boot

现在我们可以通过两种方式去创建一个Spring Boot项目:

一、通过官网去配置后下载Jar包,导入IDEA:

配置官网:https://start.spring.io/

如图所示:

一些基本的配置信息:

也可以添加Web框架支持:

最后即可下载Jar包,解压后用IDEA导入即可。


二、直接使用IDEA创建:

上面的那种方法效率不高,在实际业务中都是直接使用IDEA去创建:

新建项目:


其实一些配置信息都是和网站配置是一样的


完成后直接创建,就可以得到以下界面

我们发现通过这样创建的Spring Boot项目和我们之前项目的构建基本上是一样的,以及每个包的层次结构等等

然后执行Maven刷新,下载对应的依赖即可


四、第一个Spring Boot项目

Demo02Application 这个是已经帮我们生成好了,不需要做更改:

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

接着我们只要去写一个控制层即可:

在controller目录下创建HelloController:

@Controller@RequestMapping("/user")public class HelloController {//调用业务,接收前端参数@GetMapping("/hello")@ResponseBodypublic String hello(){return "hello";}}

到这里,我们就已经写完了!! 是不是很惊讶? 就写了这么点就可以运行吗? 是的没错,来看效果!!

打开Demo02Application,使用main方法启动:

若在控制台输出的是这样的结果,表示你启动成功啦

接着我们只要根据controller里面配置的URL到浏览器内输入即可:
我这里便是:http://localhost:8080/user/hello

结果:

当然也可以自己配置端口号(以及其他很多配置):
我们只要在resources/application.properties 下写这样一句话即可:

#更改默认的端口号server.port=9090

pom.xml内依赖的解释:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

五、Spring Boot 默认对Json的处理

首先在pojo下创建一个实体类user:

这里要给构造方法和get/set(很重要!!!)

public class user {private Integer id;private String name;private Integer age;}

编写控制类UserController:

测试分别使用对象、列表、集合的返回对象,看Spring Boot是如何处理的

@RestController@RequestMapping("/user")public class UserController {//返回一个对象@ResponseBody@GetMapping("/user")public user getUser(){return new user(1,"张三",25);}@RequestMapping("/userList")public List<user> getUserList(){List<user> userList = new ArrayList<>();userList.add(new user(2,"李四",18));userList.add(new user(3,"王五",19));return userList;}@RequestMapping("/userMap")public Map<String,Object> getUserMap(){Map<String,Object> userMap = new HashMap<>();user u = new user(4,"小王",21);userMap.put("籍贯:","浙江杭州");userMap.put("爱好:","运动");userMap.put("技能:","Java");return userMap;}}

测试:
分别输入三个URL:

http://localhost:8080/user/userhttp://localhost:8080/user/userListhttp://localhost:8080/user/userMap

分别在页面展示以下内容:

{"id":1,"name":"张三","age":25}[{"id":2,"name":"李四","age":18},{"id":3,"name":"王五","age":19}]{"爱好:":"运动","籍贯:":"浙江杭州","技能:":"Java"}

结论:方法不管是什么数据类型,Spring Boot都可以转成相应的 Json 格式

注意: 如果实体类内没有配置get/set方法,会报406错误,就是不能找到可以接受的类型,,即返回的格式不是期望接收的类型,导致了序列化失败,无法转化为json格式。


总之在使用Spring Boot后的感觉就是配置相比之前大量减少,提高了开发效率,这也就是Spring Boot的魅力吧!!!

好啦,本次文章到此结束,小伙伴的快去试试吧,去创建第一个Spring Boot项目吧!!冲冲冲