SpringBoot系列之一_入门
以前我们使用SSH或SSM框架开发Web应用时,步骤通常都比较繁琐:
1. 引入各个框架的jar包,如果使用maven,需要编写maven的依赖清单;
2. 配置web.xml文件;
3. 编写spring的配置文件;
4. 编写各个类;
5. 将项目部署到tomcat中,并启动tomcat以测试项目;
每次创建一个Web应用就需要完成以上所有步骤,而现在的Web应用通常规模都较小,即提倡“微服务”的概念,这时就有必要简化项目的开发步骤。
最近以来,SpringBoot变得很火了。SpringBoot是Spring家庭的一个新成员,它采用“习惯优于配置”的理念,如果你按照SpringBoot的默认方式去用,几乎不需要做什么配置。
SpringBoot还有一些其它的好处:
1. 将依赖项模块化,例如你要进行Web开发,只需要引入一个“spring-boot-starter-web”模块即可,这个模块里会包括很多的jar包,足够你进行Web开发的;这些模块的命名都以“spring-boot-starter-”开头;
2. 运行方便,SpringBoot有一个包含main方法的主程序,运行时以普通Java程序的方式运行,它有一个内建的应用服务器,运行时将项目打成一个jar包并放在应用服务器中运行。
一、创建第一个SpringBoot程序
1. 使用Spring Initializr生成项目源代码
SpringBoot提供了一个创建程序的网站,你登录这个网站,并进行初始配置,就可以生成项目源代码并下载到本地。
进这个网站:http://start.spring.io/
界面如下:
在此界面中,最上面一行,可以选择创建“Maven”项目或“Gradle”项目(类似Maven的项目管理工具),使用“Java”语言,并指定SpringBoot版本。
之后,输入“Group”即机构名称和“Artifact”即项目名称,还可以在右侧选择依赖项,前面说过了SpringBoot已经把常用依赖项模块化了,这里我只选择了Web,即引入“spring-boot-starter-web”模块。
最后,点击“Generate Project”(生成项目)。
就可以下载生成好的应用程序源代码。
2. 将项目导入eclipse开发工具
解压下载好的源代码。
使用eclipse的导入功能,File->Import->Existing Maven Project。
3. SpringBoot项目的目录结构
我们的第一个SpringBoot项目的目录结构如下:
可以看到有几个主要的目录:
A. src/main/java,这是放置Java源代码的目录,其下是由“Group”+“Artifact”组合而成的包名,此包下有一个DemoApplication.java文件,它是程序入口,包含了main方法。
B. src/main/resources,这是放置资源文件的目录,其中static中放置静态资源,可以在其下分别创建images、js、css等文件夹用于保存图片、样式表或脚本;templates中放置模板,例如jsp等需要解析的动态文件;application.properties是应用程序配置文件,程序的配置都写在这里。
C. src/test/java,这是放测试类的目录。
项目的根目录上有一个pom.xml,这是maven的配置文件。还有一些mvnw文件,mvnw即maven wrapper,是管理maven软件本身版本的一个工具。(Maven是管理依赖项的常用工具,但是Maven软件本身又有多个版本,如果每个人用的版本不一样怎么办?maven wrapper可以帮助你统一maven版本)
二、创建测试程序并运行
我们稍微修改一下DemoApplication.java文件。
文件的原内容如下:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping("/")
public String hello() {
return "Hello World!";
}
}
这里添加了一个测试方法hello,本来它是一个控制器,应该单独编写一个类来保存它,但为了方便,就先写在DemoApplication类里。
hello方法之前有一个注解@RequestMapping,此注解是spring mvc框架中的注解,表示访问的URL是什么。(导入spring-boot-starter-web模块即引入了spring mvc框架)
我们还注意到,在类前面还添加了一个@RestController注解,该注解表示此类中的方法都是控制器,并且控制器返回的信息以JSON格式返回,即RESTFUL风格的应用。
编写好以后,我们启动程序,在DemoApplication类上右击,Run As->Java Application。
观察一下控制台输出的内容:
之后,打开浏览器,在地址栏输入:http://localhost:8080/
就可以看到:Hello World!
我们的第一个基于SpringBoot的Web应用就完成啦!