【杂谈】Starter Template
Spring Boot 项目与普通项目在包管理上的差别
主要差别就是,Spring Boot在包管理上用了starter template,你应该经常看到xxx-starter这类的dependency。实际上就是一个整合包。例如一个spring-boot-web-starter,就包含了所有web应用要用到的基础包。control点进去看就知道了,实际上就是引入了内置的tomcat + JSON处理(jackson)+ spring-web + spring-web-mvc。置于引入Hibernate-Validtor的话,是因为Spring Boot推荐使用JPA,而Hibernate是JPA规范的一种实现。如果你使用的是Mybatis,可以除掉这个包。

整合包有什么好处?
我看到的好处有两个,一个是很明显pom文件看起来清爽多了,包数量看起来少了,也不用再像以前那样<!-- web begin--> <!-- web end--> 来标识哪些是web要用到的包了。
另一方面,就是版本的问题了,有些时候我们需要的包都引入了,但是却发现会报莫名其妙的异常,查了半天才发现,是jar包版本不对。整合包的好处就是,它Spring Boot官方整理好的,能保证这些包可以和谐共处的。
可以移除整合包的部分内容吗?
有些人很反感这种全家桶,或者想要替换其中的某个包。这当然可以,比如,你不想用spring-boot-web-starter中的tomcat包,想替换成jetty。那直接exclude掉,然后单独引入jetty就好。注意了,要引入的也是spring boot提供的,不然可能对接不上。

Spring Boot 有提供哪些整合包?
实际上就是你利用spring initializer构建项目的时候,可以勾选的那些内容。每勾选一个内容,相当于添加一个对应的整合包到对应的项目。
【杂谈】Starter Template的更多相关文章
- DotNet 资源大全中文版(Awesome最新版)
Awesome系列的.Net资源整理.awesome-dotnet是由quozd发起和维护.内容包括:编译器.压缩.应用框架.应用模板.加密.数据库.反编译.IDE.日志.风格指南等. 算法与数据结构 ...
- 【Bootstrap Demo】入门例子创建
本文简单介绍下如何来使用 Bootstrap,通过引入 Bootstrap,来实现一个最基本的入门例子. 在前一篇博文[Bootstrap]1.初识Bootstrap 基础之上,我们完全可以更加方便快 ...
- Bootstrap 简介
一.Bootstrap介绍 Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目.本课时讲解 Bootstrap 的概念,并介绍 Boo ...
- 【Bootstrap】入门例子创建
本文简单介绍下如何来使用 Bootstrap,通过引入 Bootstrap,来实现一个最基本的入门例子. 在前一篇博文[Bootstrap]1.初识Bootstrap 基础之上,我们完全可以更加方便快 ...
- [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package
本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...
- django 快速搭建blog
如果本文看不懂的,去看的我视频吧!http://www.testpub.cn/ ------------------------------------------- Django 自称是“最适合开发 ...
- Bootstrap 3 How-To #1 下载与配置
Bootstrap 3 发布了,通过简单的几步,我们就可以使用 Bootstrap 的样式表,图标,以及 javascript 来配置一个简单的站点. 准备 Bootstrap 不仅仅是一个代码集,还 ...
- ionic项目相关的操作命令
更新npmD:\Program Files\npm-3.9.0\npmnode cli.js install npm -gf vs安装 更新node.js windows版直接从官网下载安装包 n ...
- RX学习笔记:Bootstrap
Bootstrap https://getbootstrap.com 2016-07-01 在学习FreeCodeCamp课程中了解到Bootstrap,并于课程第一个实战题卡在响应式部分,于是先对B ...
随机推荐
- java项目中VO和DTO以及Entity,各自是在什么情况下应用
1.entity里的每一个字段,与数据库相对应, 2.dto里的每一个字段,是和你前台页面相对应, 3.VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西. 举个例子 ...
- [Python] 怎么把HTML的报告转换为图片,利用无头浏览器
How to convert HTML Report to picture format in Email? So that we can see the automation report also ...
- Effective C++ 笔记:条款 30 inline
30 : Understand the ins and outs of inlining 1 inline申请书 1.1 类内部实现函数包含隐藏的inline申请 class Human { publ ...
- spring中aop事务
一.事务 二.spring封装了事务管理代码 1.事务操作 2.事务操作对象 (1)因为在不同平台,操作事务的代码各不相同.spring提供了一个接口 (2) PlatformTransactionM ...
- python模块:hmac
"""HMAC (Keyed-Hashing for Message Authentication) Python module. Implements the HMAC ...
- python模块:xml.dom.minidom
"""Simple implementation of the Level 1 DOM. Namespaces and other minor Level 2 featu ...
- 第42章:MongoDB-集群--Sharding(分片)--单机的搭建
①配置服务器 在大型的集群中,建议配置3台配置服务器,就足够用了.启动配置服务器的方式: 1:先创建几个存放数据的文件夹,比如在前面的dbs下面创建confdb文件夹,然后在confdb下面创建con ...
- TensorFlow 运行模型--会话(Session)
会话模式一: 需要明确调用会话生成函数和关闭函数 # 创建一个会话 sess = tf.Session() # 使用创建好的会话进行运算 sess.run("要运算的对象") # ...
- python_day1_程序交互
程序交互 在编写程序过程中总会有程序与用户交互的场景出现,这里面提到python会使用一个方法:input 用法: 例如:请用户输入一个账号 input"Please input your ...
- Paper | 块分割信息 + 压缩视频质量增强
目录 1. 亮点 2. 网络 3. Mask 及其融合 4. 结论 论文:Enhancing HEVC Compressed Videos with a Partition-Masked Convol ...