');}

开启SpringBoot的新世界

Author Avatar
GGB 8月 13, 2018


之前一直在折腾SSM框架,几番下来也算是对SpringMVC+Spring+Mybatis的基本使用逻辑和思路有了一些清晰的思路。框架的开发模式确实比传统的纯JavaBean和Servlet的开发更高效且结构更加清晰。但是,我也并未打算就此停住来享受SSM框架的便利。因为,在接触Spring框架之初,早已听说了Spring的另一个项目——SpringBoot,这是一个更加简洁高效框架。在阅读 SpringInAction 一书时,作者在最后便提出了SpringBoot,称其是一个改变游戏规则的产品,之所以放在全书最后是为了让读者能更好理解Spring,但是他也说了,或许在下一版的书中,我们将会在全书开篇就看见SpringBoot的身影。这也说明SpringBoot所拥有的无限潜力。

此篇博客是我第一次接触SpringBoot后的体会和学习总结,其主要内容源自于SpringBoot的官方文档开篇

一.使用Spring Initializr 快速搭建SpringBoot项目

在Idea环境下,新建项目,选择Spring Initializr,直接点击next。

PWaYjK.md.png

选择使用Mavean构建项目

PWaJc6.md.png

选择Web项目,Idea会自动选择最新的SpringBoot版本,
PWaNnO.md.png

自此,便创建好了一个完整配置的SpringBoot项目,观察其pom.xml文件,可以发现其已经引进相关的SpringBoot的配置。

二.创建第一个RESTful Web Service

此次运行目标是通过一个HTTP GET REQUSET:

http://localhost:8080/greeting

得到返回的json格式数据:

{“id”:1,”content”:”Hello, World!”}

也可以传递一个名为name的参数改变返回值:

http://localhost:8080/greeting?name=ggb

{“id”:1,”content”:”Hello, ggb!”}

现在我们开始此项目的正式编码:

1.创建一个名为hello的javabean

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class hello {
private long id;
private String content;

public hello(long id, String content) {
this.id = id;
this.content = content;
}

public long getId() {
return id;
}

public String getContent() {
return content;
}

}

并实现其getter方法。

2.创建Controller

创建一个名为GreetingController的Java类如下:

1
2
3
4
5
6
7
8
9
10
@RestController
public class GreetingController {
private static final String template = "Hello,%s!";
private final AtomicLong counter=new AtomicLong();

@RequestMapping("/greeting")
public com.ggb.dao.hello greeting(@RequestParam(value="name",defaultValue = "World")String name){
return new hello(counter.incrementAndGet(),String.format(template,name));
}
}

其中,注解 @RestController为Spring4里的新注解,它包含了 @Controller@ResponseBody* 两个注解的功能。

@ResqusetMapping 同样表示映射地址为”/greeting”。

@RequestParam 将请求参数与方法参数进行绑定,并设置默认值为”World”。

counter变量用于请求计数。如此便完成了Conroller的编码。

3.运行SpringBoot

刚完成项目构建时,我们便发现了SpringBoot已经自动给我们生成了一个方法:

1
2
3
4
5
6
7
@SpringBootApplication
public class Application {

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

其中 @SpringBootApplication 注解囊括了一下所有功能:

  1. @Configuration ,即声明为一个配置类
  2. @EnableAutoConfiguration ,告诉SpringBoot自动配置加载其他Beans,和相关设定。
  3. 类似于DispatcherServlet,此声明使得其拥有SpringMVC的拦截转发功能。
  4. @ConponentScan 告诉Spring寻找其他组件,配置和服务在当前包下,并查找Controllers

于此,通过一个注解我们便完成了之前我们所需配置的一系列xml等的工作。需要前两个Java类放在main的同一个包下。

由于SpringBoot内置了tomcat容器,所以此时,只需要点击Application方法旁边的运行按钮,SpringBoot便可自动构建JAR文件,完成整个项目运行,并达到预期效果。当然,也可以通过传统方式,将整个项目打包成WAR文件再放置于第三方的容器运行。

三.总结

当第一次接触到SpringBoot,我便被其所带来的巨大的便利性所深深吸引。在此之前,即使框架给我们带来了结构性的设计模式,和各个类之间的关系解耦。但是,从dao层到service层,再到controller每一层结构所需要的配置都是比较繁杂的。所以,当接触到SpringBoot,其带来的喜悦和兴奋感是难以言喻的,它的出现是真正改变游戏规则的那个。以后,我也一定会对其进行深入的学习和探究的。

本文为ggb学习总结笔记和感想,若有不足或错误,欢迎指正交流

Powered By Valine
v1.5.2