为什么去要用到SpringBoot
特点:

  • 创建独立的spring应用
  • 嵌入tomcat ,jetty不需要部署
  • 提供starters poms简化maven配置
  • 尽可能自动配置spring'应用
  • 提供生产指标,健壮检查和外部化部署
  • 绝对没有代码生成和xml配置要求
好处:简洁,简单,易于部署,容易运行,轻量级,非阻塞

传统项目:  考虑配置文件,jar冲突问题,整合起来繁琐

什么是SpringBoot

是一个快速开发框架,能够帮助我们快速整合第三方框架(Maven依赖关系##继承),完全采用注解化(简化xml配置),内置嵌入HTTP服务器,默认嵌入Tomcat服务器.最终以java应用程序进行执行(不同于传统的war包打包发布),没有Web.xml,采用注解方式启动.内置嵌入HTTP服务器 底层就是java创建Tomcat

1.1注解取代web.xml

1.2内置服务器,不采用war包打包发布,采用java应用程序进行执行java -jar

2,springBoot与springCloud关系

springCloud  是一套目前完整的微服务框架  SpringBoot +springCloud是微服务 SpringBoot实现快速开发

springBoot  是一套目前完整的解决微服务框架,功能比Dubbo强大,注册中心/客户端调用工具/服务治理(负载均衡,断路器,分布式配置中心.网关.服务链路.消息总线等Dubbo没有的)

微服务通讯技术含义:   http+json(restful )  轻量级

SpringBoot  Web组件默认集成SpringMVC  springCloud依赖于SpringBoot实现微服务,使用SpringMVC编写微服务接口.

总结:springBoot与springCloud的区别

微服务开发----RPC远程通讯中心/服务治理

核心区别:SpringCloud  微服务框架###rpc远程调用,单纯的只是集成SpringBoot实现快速开发

 SpringBoot与SpringMVC关系:

Springboot启动springMvc的时候没有传统的配置文件

怎么启动?

采用注解方式启动.相当于采用java代码启动

maven项目创建
1、访问http://start.spring.io/
2、选择构建工具Maven Project、Spring Boot版本2.0.4以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.8,可参考下图所示

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

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

项目结构介绍:

Spring Boot的基础结构共三个文件

Src/main/java   程序开发及主程序入口

Src/main/resources   配置文件

Src/test/java   测试程序

com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+-
service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|

Application.java  主要是做框架配置  放在根目录下

Domain  主要用于实体(Entity)与数据访问层(Repository)

Service   层主要是业务类代码

Controller  负责页面访问控制

采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改
最后,启动Application main方法,至此一个java项目搭建好了

引入web模块

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

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

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

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

Spring-boot-starter-parent:整合第三方 常用框架依赖信息(各种依赖信息)

Spring-boot-start-web:是springBoot整合SpringMVC web 实现原理:Maven依赖继承关系

相当于把第三方常用maven依赖信息,在parent项目中已经封装好了,使用springboot提供依赖信息关联整合的jar包,

Springboot中快速原理(Maven子父依赖关系),springboot对常用依赖信息进行封装

2、编写controller内容

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

//整个程序的入口,启动springboot项目  创建内置tomcat服务器,使用tomcat加载springmvc 注解启动类
SpringApplication.run(Application.class, args);

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

如何做单元测试

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

开发环境的调试

热启动在正常开发项目中已经很常见了吧,虽然平时开发web项目过程中,改动项目启重启总是报错;但springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。

总结

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

(一)学习SpringBoot介绍的更多相关文章

  1. C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...

  2. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  3. 从零开始学习springboot之热部署的配置

    各位看官大家好,博主之前因为毕业设计以及毕业旅游耽搁了好长一段时间没有更新博客了,从今天起又会慢慢开始学习啦. 今天主要是来学习springboot热部署的配置. 一. 热部署 我们通常在修改某些文件 ...

  4. SpringBoot学习------SpringBoot使用Thymleaf模块访问不了静态页面

    SpringBoot使用Thymleaf模块访问不了静态页面 最近学习SpringBoot的过程中使用了Thymeleaf模块引擎,页面发送请求后老是无法显示静态页面,所有的步骤都是参考资料来执行,自 ...

  5. Redis学习01——介绍与搭建环境

    Redis学习01介绍与搭建环境一简介二yum配置已经配置了的可以跳过三安装gcc四安装redis1 上传Redis到linux中2 解压到usrlocal下3 编译redis4 安装redis5 拷 ...

  6. SpringBoot介绍与使用

    SpringBoot介绍与使用 1.什么是SpringBoot SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 我们可 ...

  7. 学习SpringBoot零碎记录——配置应用URL名称

    学习SpringBoot配置应用名称,结果发现坑 到网上找 到 https://blog.csdn.net/qq_40087415/article/details/82497668 server: p ...

  8. SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解

    SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...

  9. 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用

    学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...

随机推荐

  1. DBUtils(DataSourceUtils提供数据源)

    DBUtils是apache组织的一个工具类,jdbc的框架,更方便我们使用 使用步骤: 1.导入jar包(commons-dbutils-1.4.jar,c3p0-0.9.1.2.jar) 1.1导 ...

  2. HZOI20190906模拟39 工业,卡常,玄学

    题面:https://www.cnblogs.com/Juve/articles/11484209.html 工业: 推一个式子,AC 没有用组合数....推了2个多小时 我sbsbsbsbsbsbs ...

  3. Python3.5 安装 & hello world

    1.下载安装python https://www.python.org/downloads/release/python-364/ 2.安装成功运行 python shell 3.或者cmd => ...

  4. Docker镜像之commit

    利用 commit 理解镜像构成 基础知识 镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础.在之前的例子中,我们所使用的都是来自于 Docker Hub 的 ...

  5. Hibernate-HQL-Criteria-查询优化

    1 查询总结 oid查询-get 对象属性导航查询 HQL Criteria 原生SQL 2 查询-HQL语法 2.1 基础语法 2.2 进阶语法 排序 条件 分页 聚合 投影 多表查询 SQL HQ ...

  6. create_pascal_tf_record.py 生成的record一直为0字节

    后面发现这个错误原来是自己Main目录下的train.txt中间没东西

  7. LA3029 City Game

    Bob is a strategy game programming specialist. In his new city building game the gaming environment ...

  8. Leetcode80. Remove Duplicates from Sorted Array II删除排序数组中的重复项2

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例  ...

  9. 解决ios移动端双击页面下移

    ios移动端在双击弹出层的时候会出现页面下移,露出底层页面的现象 解决办法: <!DOCTYPE html> <html> <head> <meta char ...

  10. Redis 混合存储最佳实践指南

    Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品,混合存储实例突破 Redis 数据必须全部存储到内存的限制,使用磁盘存储全量数据,并将热数据缓存到内存,实现访问性能与 ...