spring-boot项目简单搭建
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项目简单搭建相关推荐
- Spring Boot项目快速搭建
实验要求及目的: (1)掌握ApplicationContext容器使用属性setter方法注入的实现: (2)了解Spring的概念和优点: (3)熟悉Spring中的IOC和DI: 实验环境: ...
- spring boot 项目重新搭建----------mvc配置:拦截器
6.addInterceptors添加拦截器 registry.addInterceptor(BeanKit.getOfType(DebugInterceptor.class)); 实现debug拦截 ...
- Myeclipse下使用Maven搭建spring boot项目(第二篇)
现在需要搭建spring boot框架,并实现一个HelloWorld的项目,让程序真正运行起来. 一.在pom.xml中引入spring-boot-start-parent,spring官方的叫st ...
- 怎样把一个项目加入微服务器,构建微服务:快速搭建Spring Boot项目
Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- springboot controller访问不到_构建微服务:快速搭建Spring Boot项目
Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- Spring Boot项目微信云托管入门部署
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 构建简单spring boot 项目
2019独角兽企业重金招聘Python工程师标准>>> 本篇blog的目的 完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理. spring boot的简 ...
- 《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》
目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Sprin ...
- 手把手教你搭建Spring Boot项目
Spring Boot是目前流行的微服务框架,倡导"约定优先于配置",其设计目的是用来简化新Spring应用的初始化搭建以及开发过程.Spring Boot提供了很多核心的功能,比 ...
- 使用 spring tool suit 搭建 spring boot 项目
使用 eclipse 搭建 spring boot 项目详细步骤 相对繁琐. 使用 spring tool suit 则简单多了. 直接new一个project ,选项 spring starter ...
最新文章
- 搭建Web服务器之Step1:VMWare+CentOS6.3
- “ GPU视频处理技术调研报告 ”
- POJ 3889 Fractal Streets(逼近模拟)
- 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...
- 【数据库系统】编程语言类型说明系统和DDL的区别
- 头文件 ctype.h 以及函数 isalpha() tolower()
- 数学教师计算机能力提升,为未来“计算”,做一名新时代的数学教师
- CVTE(商务类)一面二面记录
- 计算机flash教案,flash教学计划
- 蒙特卡洛模拟(求圆周率)
- u盘启动蓝屏 索尼vaio_索尼笔记本如何设置u盘启动_索尼笔记本bios设置u盘启动教程介绍...
- 微信支付二维码生成工具类
- 张亚勤功成身退,人生继续硬核
- Codeforces1324D Pair of Topics (思维 + 二分)
- Vue + Spring Boot 项目实战(四):数据库的引入
- Pandas初体验——头歌平台答案
- windows下Intel核显应用ffmpeg的qsv插件编解码
- js调用本地摄像头拍照截图,提交后台
- VS 给自己开发的Qt程序加上程序图标ico
- RASPBERRY PI wifi配置
热门文章
- Elasticsearch 6.2.2安装部署+kibana+HQ
- 十大免费CMS建站系统介绍(PHP+MYSQ…
- jzoj3691. 【CF414E】Mashmokh's Designed tree/codeforces414E
- 物美价廉:读书郎爆款学习机竟然这么值?家长快来抄作业!
- 【数据分析Tushare】金融数据处理
- 普普通通,我的三年大专
- CTF夺旗赛培训——基本知识
- android list字体大小,android自定义ListPreference字体大小
- dnf安徒恩服务器不稳定,DNF安徒恩开团后掉线那些事 网友:这时才体会到混子的重要性...
- 计算机剪切板储存在哪里,win10电脑剪贴板的内容存在哪里(图文)