springboot2 war页面放在那_成为微服务架构师--SpringBoot2学习笔记
《“爱读书”--给你讲技术》,我来看书,你来进步,让我们开始吧!
本书简介
书名为《SpringBoot2企业应用实战》,这是一本简单易懂的SpringBoot2学习书籍,快速让你掌握SpringBoot技术重点并实现企业级开发。
本文内容为本书第一章《SpringBoot2入门》
1.SpringBoot概念
Spring框架非常优秀,而它最大的问题在于配置过多。SpringBoot的出现就是为了解决Spring框架存在的问题。SpringBoot是由Pivotal团队开发,设计目的是简化Spring应用的创建、运行、调试、部署。SpringBoot使用“约定优于配置”的理念,它提供了针对各种开发场景的自动配置依赖模块spring-boot-starter。
2.SpringBoot解决的问题
- 使编码变得简单:使用注解方式
- 使配置变得简单:自动配置、快速构建项目、快速集成新技术
- 使部署变得简单:内嵌Tomcat、Jetty等Web容器
- 使监控变得简单:自带项目监控
3.SpringBoot主要特性
- SpringBoot伴随着Spring4.0诞生的,继承了Spring框架的优秀基因
- 遵循“约定优于配置”的原则,只需要很少的配置
- 对主流开发框架无配置集成,自动整合第三方框架
- 可独立运行Spring项目,SpringBoot可以以jar包形式独立运行
- 内嵌Servlet容器,可选择内嵌Tomcat、Jetty等Web容器,无须手动部署
- 提供starter简单maven配置,开箱即用
- SpringBoot会根据项目依赖自动配置框架
- SpringBoot提供了准生产环境的应用监控
- 无代码生成和XML配置
- 分布式开发,与Spring Cloud微服务无缝结合
4.SpringBoot2重要改变
- 基于Spring5构建,使用Spring5新特性
- 为各种组件的响应式编程提供了简化配置,如:Reactive Spring Date、Reactive Spring Security
- Java版本必须高于Java8
- 要求Maven3.2或更高、Tomcat8或更高、Hibernate5.2或更高
5.“开箱即用”的依赖模块
SpringBoot提供了针对各种场景使用的spring-boot-starter自动配置依赖模块,他们都约定以spring-boot-starter-作为命名前缀,并且都位于org.springframework.boot包下。
所有spring-boot-starter模块都有约定的默认配置,但是允许开发者调整这些默认配置,这就是所谓的“约定优于配置”。
SpringBoot配置包括如下几类:
- 命令行参数
- 系统环境变量
- 位于文件系统中的配置文件
- 位于classpath中的配置文件
- 固化到代码中的配置
从上到下,优先级从高到底,高优先级的配置方式会覆盖低优先级
最常用的配置是配置文件,SpringBoot默认的配置文件名为application.properties,可以放在src/main/resources目录下或类路径的/config目录下。
下面介绍两个常用的依赖模块:
(1)日志依赖模块spring-boot-starter-loggin
可通过如下配置在Maven中添加依赖模块
org.springframework.boot spring-boot-starter-logging
SpringBoot将自动使用logback作为日志框架,提供了默认日志配置。如果需要修改默认配置,使用logback.xml,并放在src/main/resources目录下。需要在application.properties中配置如下
logging.config = logback.xml
(2)Web依赖模块spring-boot-starter-web
SpringBoot使用了SpringMVC来开发Web项目,配置如下:
org.springframework.boot spring-boot-starter-web
spring-boot-starter-web中有很多约定配置,下面做简要说明:
- 项目结构层面约定
项目中的静态文件和页面需统一放在src/main/resources目录下。src/main/resources/static目录用于存放各类静态资源文件;src/main/resources/templates目录用于存放页面
- SpringMVC框架层面约定
依赖模块默认自动配置了一些SpringMVC必须组件:ViewResolver、Converter、Formatter、HttpMessageConverter、MessageCodesResolver
- 嵌入式Wev容器层面约定
默认使用Tomcat,默认端口8080
6.开快速发SpringBoot应用
(1)在Maven的pom文件中引入相关配置
增加元素
org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE
spring-boot-starter-parent是SpringBoot的核心启动器,包含了自动配置、日志和YAML等默认配置
增加元素
org.springframework.boot spring-boot-starter-web
由于指定了spring-boot-starter-parent,此处不需要指定版本,SpringBoot会自动选择合适的版本
(2)创建Controller
(3)创建启动类
使用@SpringBootApplication注解指定这是一个SpringBoot应用程序入口;
SpringApplication用于启动当前应用。
(4)启动SpringBoot项目
运行当前main方法。控制台信息如下:
控制台中可以看到SpringBoot版本、Tomcat版本、监听端口、Spring的WebApplicationContext创建信息等日志。
日志的最上面还可以看到一个Spring的图形,看到该图形就说明应用开始启动,图形可定制。
(5)应用访问
访问路径如下,SpringBoot将项目径路直接默认设置为根路径
http://localhost:8080/hello
springboot2 war页面放在那_成为微服务架构师--SpringBoot2学习笔记相关推荐
- 微服务的好处与弊端_《微服务架构设计模式》-学习总结07
本篇主要总结第七章:在微服务架构中实现查询 在微服务架构中查询数据的挑战 何时以及如何使用API组合模式实现查询 何时以及如何使用CQRS模式实现查询 微服务架构中,查询通常需要检索分散在多个服务所拥 ...
- springboot2 war页面放在那_亚马逊产品页面如何优化?这些技巧要知道
#跨境电商# #电商运营# #创业# 亚马逊是增长最快的在线销售平台之一.如果卖家想获得尽可能多的潜在客户,可以在亚马逊上优化你的listing. 下面将为卖家介绍亚马逊产品页面优化的7个技巧,希望可 ...
- 微服务架构师封神之路09-Springboot多数据源,Hikari连接池和事务配置
微服务架构师封神之路09-Springboot多数据源,Hikari连接池,和事务的配置 application.yml 初始化DataSource DataSourceConfig的两种写法 写法一 ...
- 微服务架构师封神之路02-为你的微服务应用添加日志
微服务架构师封神之路02-为你的微服务应用添加日志 关于Kubernetes日志架构 我们的目标 helloworld project 项目结构 pom.xml Dockerfile AppMain. ...
- blog微服务架构代码_聊聊微服务架构
0. 前言 时至今日微服务架构已经成为了互联网公司的标配,好像如果你不采用微服务架构,你都不好意思说自己是互联网公司.但是一说到微服务架构,大多数人联想到的都是微服务框架.RPC远程调用协议.服务发现 ...
- C++轻量级微服务_从微服务架构解析信源新一代“金融e采”产品
金融电采,信源信息 信源信息从事电子化采购软件开发已经有15个年头,进行金融保险类采购系统的开发也已经有十多年了. 信源信息针对金融领域客户量身定做的"金融e采"产品线,以前瞻的技 ...
- 中国重汽微服务管理_干货 | 微服务架构下 Spring Cloud OAuth2 通用权限管理系统
点击蓝色"泥瓦匠BYSocket",关注我哟 加个"星标",不忘文末签到哦 作者:王杰 项目地址 Gitee: https://gitee.com/log4j/ ...
- 阿里高级微服务架构师亲手教你搭建一套可自动化构建的微服务框架
这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过RPC接口通信.这样这些系统之间的耦合度大大降低 ...
- 《Spring Cloud 微服务架构进阶》读书笔记
前页 随着 DevOps 和以 Docker 为主的容器技术的发展,云原生应用架构和微服 务变得流行起来. 云原生包含的内容很多,如 DevOps.持续交付.微服务.敏捷等 第一章,微服务架构介绍 架 ...
最新文章
- “奥利”来啦,腾讯Robotics X实验室跑出的“轮滑小子”
- SQL Server 2012 数据库镜像配置完整篇
- python支持list类型吗_Python Numpy不支持的操作数类型“list”“list”
- 随机漫步(random walk)
- 空间正交基的定义_正交向量与子空间
- 重定向无法设置页面编码?
- vue从入门到开发--2-基本结构
- SSH——Hibernate简单配置
- c++MFC 截取字符串
- 使用usb有线网卡u-boot无法ping通虚拟机
- python header是啥_Python爬虫之Header
- 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛
- linux如何克隆mac地址,科技常识:详解Linux系统中网卡MAC地址克隆方法
- 【文献阅读未遂】Understanding data storage and ingestion for large-scale deep recommendation model training
- 【无标题】c++创建一个三角形类,计算周长和面积
- 对话李春龙:如何用Kubernetes管理有状态服务
- 流程图软件lauto_流程图软件(Iauto)
- HashMap知识循序渐进分析
- SAP BAPI_PRODORD_CREATE 参数带上销售订单号报 客户订单无CO对象 提示
- MSF基础--show options
热门文章
- RabbitMQ简单测试
- 炉石传说 C# 设计文档(序)
- linux之sed命令的用法
- Netbackup Status code 6解决思路
- 连接数process与会话session
- concurrenthashmap_ConcurrentHashMap实现原理及源码分析
- python安装requests库pip不是_python pip安装requests时报错,怎么解决?
- php 显示要上传的图片格式,php判断文件上传图片格式的实例详解
- java把一段英文拆成单词_Java Word Break(单词拆解)
- python客户端与服务器端通信数据库原理_python网络-HTTP协议(28)