SpringBoot (一) :入门篇

什么是spring boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。

使用spring boot有什么好处

其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?

1)配置web.xml,加载spring和spring mvc

2)配置数据库连接、配置spring事务

3)配置加载配置文件的读取,开启注解

4)配置日志文件

配置完成之后部署tomcat 调试

现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!

但是如果使用spring boot呢?

很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!

快速入门

说了那么多,手痒痒的很,马上来一发试试!

maven构建项目

1、访问http://start.spring.io/

2、选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:

3、点击Generate Project下载项目压缩包

4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!

项目结构介绍

如上图所示,Spring Boot的基础结构共三个文件:

  • src/main/java 程序开发以及主程序入口

  • src/main/resources 配置文件

  • src/test/java 测试程序

另外,spingboot建议的目录结果如下:

root package结构:com.example.myproject

com

+- example

+- myproject

+- Application.java

|

+- domain

|  +- Customer.java

|  +- CustomerRepository.java

|

+- service

|  +- CustomerService.java

|

+- controller

|  +- CustomerController.java

|

  1. Application.java 建议放到根目录下面,主要用于做一些框架配置

  2. domain目录主要用于实体(Entity)与数据访问层(Repository)

  3. service 层主要是业务类代码

  4. controller 负责页面访问控制

采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改

最后,启动Application main方法,至此一个java项目搭建好了!

引入web模块

1、pom.xml中添加支持web的模块:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

pom.xml文件中默认有两个模块:

spring-boot-starter :核心模块,包括自动配置支持、日志和YAML;

spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito。

2、编写controller内容:

@RestController

public class HelloWorldController {

@RequestMapping("/hello")

public String index() {

return "Hello World";

}

}

@RestController 的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!

3、启动主程序,打开浏览器访问http://localhost:8080/hello,就可以看到效果了,有木有很简单!

如何做单元测试

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

@RunWith(SpringJUnit4ClassRunner.class)

@SpringApplicationConfiguration(classes = MockServletContext.class)

@WebAppConfiguration

public class HelloWorldControlerTests {

private MockMvc mvc;

@Before

public void setUp() throws Exception {

mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();

}

@Test

public void getHello() throws Exception {

mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))

.andExpect(MockMvcResultMatchers.status().isOk())

.andDo(MockMvcResultHandlers.print())

.andReturn();

}

}

开发环境的调试

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

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<configuration>

<fork>true</fork>

</configuration>

</plugin>

</plugins>

</build>

该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。

总结

使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务

SpringBoot (一) :入门篇相关推荐

  1. SpringBoot基础入门篇

    SpringBoot是什么 为什么我们要使用SpringBoot? Spring Boot makes it easy to create stand-alone, production-grade ...

  2. SpringBoot框架:入门篇

    1. SpringBoot框架的作用 SpringBoot框架可以直接理解为是一个更好用的SpringMVC框架! SpringBoot框架遵循"约定大于配置"的思想,它默认完成了 ...

  3. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 基础入门篇

    SpringBoot 2.x 时代 – 基础入门篇 视频学习地址:https://www.bilibili.com/video/BV1Et411Y7tQ?p=112&spm_id_from=p ...

  4. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  5. Spring Boot(一)入门篇

    Spring Boot干货系列:(一)优雅的入门篇 前言 Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术 ...

  6. SpringBoot从入门到精通教程

    SpringBoot从入门到精通教程 一.来自ImportNew公众号的SpringBoot教程系列,可参考学习 SpringBoot (一) :入门篇--http://mp.weixin.qq.co ...

  7. Spring Boot (16)---优雅的入门篇

    Spring Boot (16)---优雅的入门篇 Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术储备. ...

  8. Kafka入门篇学习笔记整理

    Kafka入门篇学习笔记整理 Kafka是什么 Kafka的特性 应用场景 Kafka的安装 单机版部署 集群部署环境准备 Kafka 2.x集群部署 Kafka 3.x集群部署 监听器和内外网络 K ...

  9. SpringBoot从入门到精通-佟刚-专题视频课程

    SpringBoot从入门到精通-437人已学习 课程介绍 SpringBoot是企业级开发的整体整合解决方案,特别用于构建微服务应用,旨在用简单的方式让开发人员适应各种开发场景: 课程收益      ...

最新文章

  1. C#对App.config文件或者web.config文件中节点的操作类
  2. Discovery CentOS6.4 issue
  3. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
  4. 【VOC格式xml文件解析】——Python
  5. 数据库设计基础:数据字典相关知识笔记
  6. AtCoder Regular Contest 059
  7. 提升数据分析能力成熟度之四步曲_数据分析师
  8. Linux系统编程1-7总结项目:进度条的实现
  9. Windows 7下面安装VMware、Windows XP
  10. 大数据开发笔记(十):Hbase列存储数据库总结
  11. 分享几个下载豆瓣资源的chrome插件
  12. 多媒体架构---display介绍
  13. 【Unity Editor编辑器】 代码获取project面板选中资源路径(自定义右键菜单)
  14. LeetCode-55. 跳跃游戏
  15. 从问题描述到电子运转 思维导图 《计算机系统概论》
  16. 用凯撒密码对喜欢的人表白
  17. Javascript循环删除数组中元素的3种方法
  18. ArrayList的 toArray() 与 toArray(T[] a)
  19. android重力传感器横竖反,Android重力感应实现方式
  20. 视频教程-【吴刚】个人网站设计初级入门标准视频教程-UI

热门文章

  1. 6005.boost多线程与mavlink协议结合实现消息收发
  2. 【蓝桥杯单片机】实战训练:基于15单片机的距离测试及电压数据采集响应系统(超声波测距、上位机、DAC输出)
  3. linux下ip协议(V4)的实现(三)
  4. [计算机网络] - HTTP、HTTPS
  5. Revit二次开发The symbol is not active
  6. 特征金字塔 Feature Pyramid Networks for Object Detection
  7. Django web框架-----Django连接本地现有mysql数据库
  8. centos下安装opencv
  9. EmWin 接触---基础函数
  10. mysql 查询正在执行的事务以及等待锁 常用的sql语句