springboot的功能与作用:
其实,创建一个springboot的应用并没有那么麻烦,如果麻烦的话,又怎么能称为“微服务”呢?springboot的目的就是简化java开发人员使用spring过程中配置的复杂度与繁琐度,可以说springboot并不是一个新的技术,它也没有对spring做功能上的改进或剔除,它只是帮java开发人员提前做好了配置,让你不必每次新建一个spring项目都要配置applicationContext.xml(spring的配置文件,名字一般都这样叫,有的也起做beans.xml,叫什么都没关系,能表达清楚意思就行了)和spring-mvc.xml(springmvc的配置文件)。
创建第一个springboot应用
废话不多,做人就要人狠话少。先来个快速入门。你可能看到,要学springboot就要安装sts插件或者安装个sts ide之类的话,其实这不是必要条件,就一个普普通通的eclipse不需要安装任何插件就可以做springboot的开发。而sts插件或者sts ide的作用只是让你开发起来更便捷罢了。我下面的演示没有基于任何的插件。
1.首先,新建个maven project项目(这个应该都会吧,不会的可以参考本站的maven教程),类型是jar就可以,建好后结构如下:
2.打开pom.xml,可以看到内容如下:
3.在pom.xml中新增如下内容:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
这里指定parent使用spring-boot-starter-parent,这里面定义了相关starter的version,所以你在后边的depedency引入的时候就不需要指定version了,这是maven里面的知识。springboot里面有个starter的概念,springboot目前大概有40来个starter,它其实就是一组相关jar包的集合,比如上边的spring-boot-starter-web里面包含了springmvc、jackson等jar包,再例如spring-boot-starter-aop里面包含了springaop和aspectj等jar包,意思就是这么个意思。
4.新建两个类,建好后项目结构如图:
这两个类的代码分别如下,App.java:
package com.roadjava.sb; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
UserHandler.java:
package com.roadjava.sb.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class UserHandler { @RequestMapping("/getUsers") @ResponseBody public String getUsers(){ return "users"; } }
5.在App.java中直接run as java application就行了:
6.访问“http://localhost:8080/getUsers”,如果成功,学过springmvc的小伙伴都知道应该返回"users"字符串:
结果正如所料一样,说明第一个springboot项目运行成功了。