博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot(1)入门
阅读量:6454 次
发布时间:2019-06-23

本文共 6504 字,大约阅读时间需要 21 分钟。

hot3.png

1 简介

       Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

       Spring Boot具有如下特性:

  • 简化maven配置,快速创建独立的spring应用程序。
  • 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求。
  • 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
  • Spring Boot并不是不对Spring功能上的增强,而是提供了一种快速使用Spring的方式。

2 快速入门

    本博客Spring Boot使用版本1.5.8.RELEASE,Spring Boot 1.5.8.RELEASE需要Java 7和Spring Framework 4.3.12.RELEASE或更高版本,你也可以使用Spring Boot with Java 6和一些额外的配置(不建议),使用Maven(3.2+)或Gradle 2(2.9或更高版本)和3来构建。

      本博客系列统一使用Java 1.8,Spring Boot 1.5.8.RELEASE以及Maven3.2.5版本。

      一个简单的spring boot项目结构如下:

  • pom.xml:Maven构建说明文件。
  • DemoApplication.java:一个带有main()方法的类,用于启动应用程序(关键)。
  • application.properties:一个空的properties文件,你可以根据需要添加配置属性。

2.1 创建项目步骤

      1、首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构。

      2、修改pom.xml为如下内容

4.0.0
com.example
demo
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.8.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin

      spring boot父级依赖>

org.springframework.boot
spring-boot-starter-parent
1.5.8.RELEASE

      这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。

      如果你不想使用某个依赖默认的版本,您还可以通过覆盖自己的项目中的属性来覆盖各个依赖项,例如,要升级到另一个Spring Data版本系列,您可以将以下内容添加到pom.xml中。

Fowler-SR2

      原本默认版本是Ingalls-RELEASE的,现在就使用Fowler-SR2版本了。

      并不是每个人都喜欢继承自spring-boot-starter-parent POM。您可能有您需要使用的自己的公司标准parent,或者您可能更喜欢显式声明所有的Maven配置。如果你不想使用spring-boot-starter-parent,您仍然可以通过使用scope = import依赖关系来保持依赖关系管理:

org.springframework.boot
spring-boot-dependencies
1.5.1.RELEASE
pom
import

      该设置不允许您使用如上所述的属性(properties)覆盖各个依赖项,要实现相同的结果,您需要在spring-boot-dependencies项之前的项目的dependencyManagement中添加一个配置,例如,要升级到另一个Spring Data版本系列,您可以将以下内容添加到pom.xml中。

org.springframework.data
spring-data-releasetrain
Fowler-SR2
import
pom
org.springframework.boot
spring-boot-dependencies
1.5.8.RELEASE
pom
import

      起步依赖spring-boot-starter-*>

      Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。打个比方来说明一下这个起步依赖的好处,比如组装台式机和品牌机,自己组装的话需要自己去选择不同的零件,最后还要组装起来,期间有可能会遇到零件不匹配的问题。耗时又消力,而品牌机就好一点,买来就能直接用的,后续想换零件也是可以的。相比较之下,后者带来的效果更好点(这里就不讨论价格问题哈),起步依赖就像这里的品牌机,自动给你封装好了你想要实现的功能的依赖。就比如我们之前要实现web功能,引入了spring-boot-starter-web这个起步依赖。

      起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或者某类功能。

      spring boot maven插件>

org.springframework.boot
spring-boot-maven-plugin

      上面的配置就是Spring Boot Maven插件,Spring Boot Maven插件提供了许多方便的功能:

  • 把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序。
  • 搜索public static void main()方法来标记为可运行类。

      3、应用入口类DemoApplication

package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication(scanBasePackages = "com.example")public class DemoApplication {	public static void main(String[] args) {		SpringApplication.run(DemoApplication.class, args);	}}

      DemoApplication是一个很关键的启动类,程序的入口就是这里。@SpringBootApplication是Sprnig Boot项目的核心注解,主要目的是开启自动配置。main方法这是一个标准的Java应用的main的方法,主要作用是作为项目启动的入口。

      4、控制类DemoController

package com.example.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class DemoController {	@RequestMapping("/hello")    public String index() {        return "Hello World";    }}

   控制类中添加@RestController以及index方法,@RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。

      5、运行

     启动应用入口类,打开浏览器访问/hello, 你就能看到页面显示Hello Spring Boot效果了,一个简单的Web的项目就是如此简单。

3 单元测试

     打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。

@RunWith(SpringRunner.class)@SpringBootTestpublic class HelloTests {      private MockMvc mvc;    @Before    public void setUp() throws Exception {        mvc = MockMvcBuilders.standaloneSetup(new DemoController()).build();    }    @Test    public void getHello() throws Exception {        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))                .andExpect(status().isOk())                .andExpect(content().string(equalTo("Hello World")));    }}

4 开发环境的调试

      热启动在正常开发项目中已经很常见了吧,虽然平时开发web项目过程中,改动项目启重启总是报错;但springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:

org.springframework.boot
spring-boot-devtools
true
org.springframework.boot
spring-boot-maven-plugin
true

 

转载于:https://my.oschina.net/90liusq/blog/1555975

你可能感兴趣的文章
[解决]电信彩信网关开发错误-SOAP_VERSIONMISMATCH
查看>>
vs2008 使用技巧
查看>>
Microsoft Visual Studio 2010 重新生成解决方案的一些警告处理
查看>>
linux[批量复制并重命名]和[批量复制文件到多个文件夹]
查看>>
select,poll和epoll使用
查看>>
【Arduino】开源开发板说明
查看>>
ADO Connection Strings
查看>>
Android NDK学习(2)Windows下NDK开发环境配置
查看>>
javascript 中{}和[] 的理解
查看>>
Nmap扫描教程之DNS服务类
查看>>
(算法)跳跃问题
查看>>
javaScript基础练习题-下拉框制作(JQuery)
查看>>
XE8 FMX SpeedButton 大图标(改 Style)
查看>>
JBoss7配置指南
查看>>
CRM/ERP 企业管理软件中常见的七种程序设计模式
查看>>
C#:绘图问题
查看>>
ServiceBase 备份
查看>>
linux编程基础
查看>>
分页总页数计算方法 所有分页通用
查看>>
linux下面测试网络带宽 (转载)
查看>>