Spring Boot充分利用了JavaConfig的配置模式以及“约定优于配置”的理念,能够极大的简化基于Spring MVC的Web应用和REST服务开发。

要Spring Boot进行功能开发,需要使用Gradle或者Maven作为构建工具。在本例中,我们会使用Eclipse和Maven插件进行开发。要使用Spring Boot,首先创建一个Maven工程,并修改Maven主要的配置文件pom.xml,如下所示:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.2.5.RELEASE</version><relativePath/></parent>
<!--如果你不使用继承至parent的spring-boot-starter-parent,通过使用一个scope=import的依赖,你仍能获取到没有父POM的Spring Boot <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.2.5.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
-->  <build><finalName>sas-api</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><warName>sas-api</warName></configuration></plugin></plugins></build><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.7</java.version><springfox.version>2.2.2</springfox.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 打包部署到tomcat上面时,不需要打包tmocat相关的jar包,否则会引起jar包冲突 --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${springfox.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${springfox.version}</version></dependency></dependencies>
</project>

在上面的配置中,需要将工程的parent设置为spring-boot-starter-parent,并添加对spring-boot-starter-web的依赖,这样我们就无需设置各个依赖项及其版本信息了。并且在构建中要声明使用spring-boot-maven-plugin这个插件,它会对Maven打包形成的JAR进行二次修改,最终产生符合我们要求的内容结构。
在我们的应用中将要发布一个REST服务,显示一个基本的用户信息,首先定义一个简单的模型类:

public class User {  private Long id;  private String name;  public Long getId() {  return id;  }  public void setId(Long id) {  this.id = id;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }}

接下来,我们需要声明一个Spring MVC的Controller,响应对实体的请求:

@RestController
@RequestMapping("/user")
public class UserController {  @RequestMapping("/{id}")  public User view(@PathVariable("id") Long id) {  User user = new User();  user.setId(id);  user.setName("long");  return user;  }
}

这个类与我们在使用Spring MVC定义Controller时并无任何差别。接下来,我们需要声明一个主类启动这个应用程序:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {  public static void main(String[] args) {  SpringApplication.run(Application.class);  }
}

这个类的main方法中使用了SpringApplication帮助类,并以Application这个类作为配置来启动Spring的应用上下文。在这个类中使用了ComponentScan以及EnableAutoConfiguration注解,其中ComponentScan注解会告知Spring扫描指定的包来初始化Spring Bean,这能够确保我们声明的Bean能够被发现。

EnableAutoConfiguration将会启动自动配置模式,在我们的配置中会将对Tomcat的依赖级联进来,因此在应用启动时将会自动启动一个嵌入式的Tomcat,因为在样例中使用了Spring MVC,所以也会自动注册所需的DispatcherServlet,这都不需要类似web.xml这样的配置。

在Eclipse中要运行这个应用的话,可以直接以Java Application的形式来运行这个main函数,此时会启动应用,我们在浏览器中可以看到如下的运行效果,这就是我们想要的REST服务:

在开发调试完成之后,可以将应用打成JAR包的形式,在Eclipse中可以直接使用Maven插件的package命令,最终会形成一个可运行的JAR包。我们使用java –jar命令就可以运行这个JAR包了。所呈现出的效果与在调试期是一样的。
如果我们想要将这个JAR包转换成可以在Servlet容器中部署的WAR的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,此时我们需要声明这样一个类:

public class HelloWebXml extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}
}

这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似,只不过在这里不需要编写额外的XML文件了。

如果要将最终的打包形式改为WAR的话,还需要对pom.xml文件进行修改,除了需要将packaging的值修改为war以外,还需要对依赖进行适当的配置:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>

在这里需要移除对嵌入式Tomcat的依赖,这样打出的WAR包中,在lib目录下才不会包含Tomcat相关的JAR包,否则将会出现启动错误。另外,在移除对Tomcat的依赖后,为了保证单独运行main方法启动没问题,还需要添加对spring-boot-starter-tomcat的依赖,因此添加如下的配置:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。此时,执行mvn package命令就会得到一个WAR文件,我们可以直接将其放到Tomcat下运行(特别提醒:tomcat必须7.0.42版本以上)。

篇外篇:
正常情况下运行main方法时,是不需要输入项目名称就可执行方法url请求。例如:http://localhost:8080/user/6 ;
如果希望main方法也通过项目名访问,可在resources目录中新建一个application.properties文件,里面添加一句:

server.contextPath=/项目名 (例如:server.contextPath=/sas-api)

这样main方法启动,项目会自动去寻找application.properties名称的配置文件,如果有,则读取里面的配置信息。,这样就与部署到tomcat上访问的url路径一直了。
http://localhost:8080/sas-api/user/6

spring-boot项目简单搭建相关推荐

  1. Spring Boot项目快速搭建

    实验要求及目的: (1)掌握ApplicationContext容器使用属性setter方法注入的实现: (2)了解Spring的概念和优点: (3)熟悉Spring中的IOC和DI: 实验环境:   ...

  2. spring boot 项目重新搭建----------mvc配置:拦截器

    6.addInterceptors添加拦截器 registry.addInterceptor(BeanKit.getOfType(DebugInterceptor.class)); 实现debug拦截 ...

  3. Myeclipse下使用Maven搭建spring boot项目(第二篇)

    现在需要搭建spring boot框架,并实现一个HelloWorld的项目,让程序真正运行起来. 一.在pom.xml中引入spring-boot-start-parent,spring官方的叫st ...

  4. 怎样把一个项目加入微服务器,构建微服务:快速搭建Spring Boot项目

    Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  5. springboot controller访问不到_构建微服务:快速搭建Spring Boot项目

    Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  6. Spring Boot项目微信云托管入门部署

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  7. 构建简单spring boot 项目

    2019独角兽企业重金招聘Python工程师标准>>> 本篇blog的目的 完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理. spring boot的简 ...

  8. 《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

    目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Sprin ...

  9. 手把手教你搭建Spring Boot项目

    Spring Boot是目前流行的微服务框架,倡导"约定优先于配置",其设计目的是用来简化新Spring应用的初始化搭建以及开发过程.Spring Boot提供了很多核心的功能,比 ...

  10. 使用 spring tool suit 搭建 spring boot 项目

    使用 eclipse 搭建 spring boot 项目详细步骤 相对繁琐. 使用 spring tool suit 则简单多了. 直接new一个project ,选项 spring starter ...

最新文章

  1. 搭建Web服务器之Step1:VMWare+CentOS6.3
  2. “ GPU视频处理技术调研报告 ”
  3. POJ 3889 Fractal Streets(逼近模拟)
  4. 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...
  5. 【数据库系统】编程语言类型说明系统和DDL的区别
  6. 头文件 ctype.h 以及函数 isalpha() tolower()
  7. 数学教师计算机能力提升,为未来“计算”,做一名新时代的数学教师
  8. CVTE(商务类)一面二面记录
  9. 计算机flash教案,flash教学计划
  10. 蒙特卡洛模拟(求圆周率)
  11. u盘启动蓝屏 索尼vaio_索尼笔记本如何设置u盘启动_索尼笔记本bios设置u盘启动教程介绍...
  12. 微信支付二维码生成工具类
  13. 张亚勤功成身退,人生继续硬核
  14. Codeforces1324D Pair of Topics (思维 + 二分)
  15. Vue + Spring Boot 项目实战(四):数据库的引入
  16. Pandas初体验——头歌平台答案
  17. windows下Intel核显应用ffmpeg的qsv插件编解码
  18. js调用本地摄像头拍照截图,提交后台
  19. VS 给自己开发的Qt程序加上程序图标ico
  20. RASPBERRY PI wifi配置

热门文章

  1. Elasticsearch 6.2.2安装部署+kibana+HQ
  2. 十大免费CMS建站系统介绍(PHP+MYSQ…
  3. jzoj3691. 【CF414E】Mashmokh's Designed tree/codeforces414E
  4. 物美价廉:读书郎爆款学习机竟然这么值?家长快来抄作业!
  5. 【数据分析Tushare】金融数据处理
  6. 普普通通,我的三年大专
  7. CTF夺旗赛培训——基本知识
  8. android list字体大小,android自定义ListPreference字体大小
  9. dnf安徒恩服务器不稳定,DNF安徒恩开团后掉线那些事 网友:这时才体会到混子的重要性...
  10. 计算机剪切板储存在哪里,win10电脑剪贴板的内容存在哪里(图文)