Spring Boot(一):入门篇
<style>@font-face { font-family: "Times New Roman" }@font-face { font-family: "宋体" }
@font-face { font-family: "Wingdings" }
@font-face { font-family: "Courier New" }
@font-face { font-family: "Courier New" }
@font-face { font-family: "Calibri" }
@font-face { font-family: "仿宋" }
@font-face { font-family: "Arial" }
@font-face { font-family: "Consolas" }
@list l0:level1{
mso-level-number-format:decimal;
mso-level-suffix:none;
mso-level-text:"%1)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:0.0000pt;
text-indent:0.0000pt;
font-family:'Times New Roman';}
@list l1:level1{
mso-level-number-format:decimal;
mso-level-suffix:none;
mso-level-text:"%1、";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:0.0000pt;
text-indent:0.0000pt;
font-family:'Times New Roman';}
@list l2:level1{
mso-level-number-format:bullet;
mso-level-suffix:tab;
mso-level-text:\f06c;
mso-level-tab-stop:21.0000pt;
mso-level-number-position:left;
margin-left:21.0000pt;text-indent:-21.0000pt;font-family:wingdings;}
@list l3:level1{
mso-level-start-at:2;
mso-level-number-format:decimal;
mso-level-suffix:none;
mso-level-text:"%1、";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:0.0000pt;
text-indent:0.0000pt;
font-family:'Times New Roman';}
@list l4:level1{
mso-level-number-format:decimal;
mso-level-suffix:none;
mso-level-text:"%1、";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:0.0000pt;
text-indent:0.0000pt;
font-family:'Times New Roman';}
p.msonormal { mso-style-name: 正文; mso-style-parent: ""; margin: 0 0 0.0001pt; mso-pagination: none; text-align: justify; text-justify: inter-ideograph; font-family: calibri; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; font-size: 10.5pt; mso-font-kerning: 1.0000pt }
h1 { mso-style-name: "标题 1"; mso-style-next: 正文; margin-top: 5pt; margin-bottom: 5pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: none; text-align: left; font-family: 宋体; font-weight: bold; font-size: 24pt; mso-font-kerning: 22.0000pt }
h2 { mso-style-name: "标题 2"; mso-style-noshow: yes; mso-style-next: 正文; margin-top: 5pt; margin-bottom: 5pt; margin-left: 0; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; border: none; mso-border-top-alt: none; mso-border-right-alt: none; mso-border-bottom-alt: none; mso-border-left-alt: none; padding: 1pt 4pt; mso-layout-grid-align: none; layout-grid-mode: char; mso-line-break-override: restrictions; text-autospace: none; mso-pagination: none; text-align: left; mso-outline-level: 2; font-family: 仿宋; mso-ascii-font-family: 宋体; mso-hansi-font-family: 宋体; font-weight: bold; font-size: 14pt }
h3 { mso-style-name: "标题 3"; mso-style-noshow: yes; mso-style-next: 正文; margin-top: 13pt; margin-bottom: 13pt; mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; page-break-after: avoid; mso-pagination: lines-together; text-align: justify; text-justify: inter-ideograph; mso-outline-level: 3; line-height: 172%; font-family: calibri; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; font-weight: bold; font-size: 16pt; mso-font-kerning: 1.0000pt }
span.10 { font-family: "Times New Roman" }
span.15 { font-family: "Times New Roman"; color: rgba(0, 0, 255, 1); text-decoration: underline; text-underline: single }
span.16 { font-family: "Courier New"; font-size: 10pt }
p.p { mso-style-name: "普通\(网站\)"; margin: 5pt 0; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: none; text-align: left; font-family: calibri; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; font-size: 12pt }
p.pre { mso-style-name: "HTML 预设格式"; margin: 0 0 0.0001pt; mso-pagination: none; text-align: left; font-family: "Courier New"; mso-fareast-font-family: 宋体; font-size: 10pt }
p.msoblocktext { mso-style-name: 文本块; margin-bottom: 6pt; margin-left: 72pt; mso-para-margin-right: 7.0000gd; mso-para-margin-bottom: 0.0000gd; mso-para-margin-left: 7.0000gd; mso-pagination: none; text-align: justify; text-justify: inter-ideograph; font-family: calibri; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; font-size: 10.5pt; mso-font-kerning: 1.0000pt }
p.msotoc2 { mso-style-name: "目录 2"; mso-style-parent: "目录 1"; margin-left: 0; mso-para-margin-left: 0.0000gd; mso-pagination: none; text-align: left; mso-outline-level: 2; font-family: calibri; mso-fareast-font-family: 仿宋; mso-bidi-font-family: 'Times New Roman'; font-weight: bold; font-size: 14pt; mso-font-kerning: 1.0000pt }
p.msotoc1 { mso-style-name: "目录 1"; mso-style-next: 正文; margin: 0 0 0.0001pt; mso-pagination: none; text-align: justify; text-justify: inter-ideograph; font-family: calibri; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; font-size: 10.5pt; mso-font-kerning: 1.0000pt }
span.msoins { mso-style-type: export-only; mso-style-name: ""; text-decoration: underline; text-underline: single; color: rgba(0, 0, 255, 1) }
span.msodel { mso-style-type: export-only; mso-style-name: ""; text-decoration: line-through; color: rgba(255, 0, 0, 1) }
table.msonormaltable { mso-style-name: 普通表格; mso-style-parent: ""; mso-style-noshow: yes; mso-tstyle-rowband-size: 0; mso-tstyle-colband-size: 0; mso-padding-alt: 0.0000pt 5.4000pt 0.0000pt 5.4000pt; mso-para-margin: 0pt; mso-para-margin-bottom: .0001pt; mso-pagination: widow-orphan; font-family: "Times New Roman"; font-size: 10pt; mso-ansi-language: #0400; mso-fareast-language: #0400; mso-bidi-language: #0400 }
@page { mso-page-border-surround-header: no; mso-page-border-surround-footer: no }
@page section0 { margin: 72pt 90pt; size: 595.3000pt 841.9000pt; layout-grid: 15.6000pt }
div.section0 { page: section0 }</style>
<div class="Section0" style="layout-grid: 15.6pt none">
<p class="MsoNormal"><span style="font-size: 18pt; font-family: 仿宋; text-transform: none; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'"> </span></p>
<p class="MsoNormal" style="text-align: center" align="center"><strong><span style="font-size: 18pt; font-family: 仿宋; text-transform: none; font-weight: bold; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'">构建微服务:Spring boot 入门篇</span></strong></p>
<p class="MsoNormal"> </p>
<h1 style="text-align: left; margin: 0; text-autospace: ideograph-numeric; text-indent: 0; mso-pagination: widow-orphan; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; padding: 0"><strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: bold; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">什么是</span></strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: normal; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">Spring Boot</span></h1>
<p class="MsoNormal">Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。</p>
<p class="MsoNormal"> </p>
<h1 style="text-align: left; margin: 0; text-autospace: ideograph-numeric; text-indent: 0; mso-pagination: widow-orphan; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; padding: 0"><strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: bold; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">使用 </span></strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: normal; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">Spring Boot</span><strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: bold; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">有什么好处</span></strong></h1>
<p>其实就是简单、快速、方便!平时如果我们需要搭建一个 Spring Web 项目的时候需要怎么做呢?</p>
<ul>
<li>1)配置 web.xml,加载 Spring 和 Spring mvc</li>
<li>2)配置数据库连接、配置 Spring 事务</li>
<li>3)配置加载配置文件的读取,开启注解</li>
<li>4)配置日志文件</li>
<li>...</li>
<li>配置完成之后部署 Tomcat 调试</li>
<li>...</li>
</ul>
<p>现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!</p>
<p>但是如果使用 Spring Boot 呢?<br>很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套 Web 项目或者是构建一个微服务!</p>
<p>使用 Spring Boot 到底有多爽,用下面这幅图来表达</p>
<p><img src="http://www.itmind.net/assets/images/2016/dog.jpg" alt="" style="display: block; margin-left: auto; margin-right: auto"></p>
<h1 style="margin: 0; text-indent: 0; padding: 0"> <img src="https://img2018.cnblogs.com/blog/331425/201907/331425-20190731085847706-1556189752.jpg" alt="" style="display: block; margin-left: auto; margin-right: auto"></h1>
<h1 style="text-align: left; margin: 0; text-autospace: ideograph-numeric; text-indent: 0; mso-pagination: widow-orphan; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; padding: 0"><strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: bold; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">快速入门</span></strong></h1>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; color: rgba(0, 0, 0, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">说了那么多,手痒痒的很,马上来一发</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; color: rgba(0, 0, 0, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">试试!</span></p>
<p class="MsoNormal"> </p>
<p><strong>Maven 构建项目</strong></p>
<ul>
<li>1、访问 http://start.spring.io/</li>
<li>2、选择构建工具 Maven Project、Java、Spring Boot 版本 2.1.3 以及一些工程基本信息,可参考下图所示:</li>
</ul>
<p><img src="http://www.itmind.net/assets/images/2019/springboot/spring-boot-start.png" alt=""></p>
<ul>
<li>3、点击 Generate Project 下载项目压缩包</li>
<li>4、解压后,使用 Idea 导入项目,File -> New -> Model from Existing Source.. -> 选择解压后的文件夹 -> OK,选择 Maven 一路 Next,OK done!</li>
<li>5、如果使用的是 Eclipse,Import -> Existing Maven Projects -> Next -> 选择解压后的文件夹 -> Finsh,OK done!</li>
</ul>
<p><strong>Idea 构建项目</strong></p>
<ul>
<li>1、选择 File -> New —> Project... 弹出新建项目的框</li>
<li>2、选择 Spring Initializr,Next 也会出现上述类似的配置界面,Idea 帮我们做了集成</li>
<li>3、填写相关内容后,点击 Next 选择依赖的包再点击 Next,最后确定信息无误点击 Finish。</li>
</ul>
<p class="MsoNormal"> </p>
<p class="MsoToc2"><strong><span style="font-size: 14pt; font-family: 仿宋; font-weight: bold; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-spacerun: 'yes'">项目结构介绍</span></strong></p>
<p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 12pt; font-family: 仿宋; text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'"><img src="https://images2015.cnblogs.com/blog/331425/201607/331425-20160712105138029-1564953731.png" alt="springboot2" width="803" height="417" title="springboot2" border="0" style="background-image: none; padding-top: 0; padding-left: 0; margin: 1px 0; display: inline; padding-right: 0; border-width: 0"></span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">如上图所示,Spring Boot的基础结构共三个文件</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">:</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; mso-list: l2 level1 lfo3"><span style="font-size: 12pt; font-family: wingdings; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-fareast-font-family: 仿宋; mso-bidi-font-family: 仿宋; mso-font-kerning: 1.0000pt; mso-shading: #ffffff"><span style="mso-list: ignore">l<span> </span></span></span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">src/main/java 程序开发以及主程序入口</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; mso-list: l2 level1 lfo3"><span style="font-size: 12pt; font-family: wingdings; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-fareast-font-family: 仿宋; mso-bidi-font-family: 仿宋; mso-font-kerning: 1.0000pt; mso-shading: #ffffff"><span style="mso-list: ignore">l<span> </span></span></span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">src/main/resources 配置文件</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; mso-list: l2 level1 lfo3"><span style="font-size: 12pt; font-family: wingdings; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-fareast-font-family: 仿宋; mso-bidi-font-family: 仿宋; mso-font-kerning: 1.0000pt; mso-shading: #ffffff"><span style="mso-list: ignore">l<span> </span></span></span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">src/test/java 测试程序</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none" align="justify"> </p>
<p class="MsoNormal" style="text-align: justify; margin-left: 0; text-justify: inter-ideograph; text-autospace: ideograph-numeric; margin-right: 0; text-indent: 0; mso-pagination: none; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">另外,spingboot建议的目录结果如下:</span></p>
<p class="MsoNormal" style="text-align: justify; margin-left: 0; text-justify: inter-ideograph; text-autospace: ideograph-numeric; margin-right: 0; text-indent: 0; mso-pagination: none; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">root package结构:</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(217, 217, 217, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes'; mso-shading: #d9d9d9">com.example.myproject</span></p>
<div class="cnblogs_code" style="background-color: rgba(245, 245, 245, 1); border: 1px solid rgba(204, 204, 204, 1); padding: 5px">
<pre><span style="color: rgba(0, 0, 0, 1)">com
+- example
+- myproject
+- Application.java
|
+- domain
|+- Customer.java
|+- CustomerRepository.java
|
+- service
|+- CustomerService.java
|
+- controller
|+- CustomerController.java
|</span></pre>
</div>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none; mso-list: l4 level1 lfo4" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-shading: #f7f7f7"><span style="mso-list: ignore">1、</span></span><span class="16" style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7">Application.java</span><span class="16" style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7"> </span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">建议放到跟目录下面,主要用于</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">做一些框架配置</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none; mso-list: l4 level1 lfo4" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-shading: #f7f7f7"><span style="mso-list: ignore">2、</span></span><span class="16" style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7">domain</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">目录主要用于实体(</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">Entity)与数据访问层(Repository)</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none; mso-list: l4 level1 lfo4" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-shading: #f7f7f7"><span style="mso-list: ignore">3、</span></span><span class="16" style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7">service</span><span class="16" style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7"> </span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">层主要是业务类代码</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none; mso-list: l4 level1 lfo4" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-shading: #f7f7f7"><span style="mso-list: ignore">4、</span></span><span class="16" style="font-size: 12pt; font-family: 仿宋; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7">controller</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff"> 负责页面访问控制</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none" align="justify"> </p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; mso-pagination: none" align="justify"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">最后,启动Application main方法,至此一个java项目搭建好了!</span></p>
<p class="MsoNormal"> </p>
<p class="MsoToc2"><strong><span style="font-size: 14pt; font-family: 仿宋; font-weight: bold; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-spacerun: 'yes'">引入 W<span style="font-family: Calibri">eb </span><span style="font-family: 仿宋">模块</span></span></strong></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">1、pom.xml中添加支持web的模块:</span></p>
<div class="cnblogs_code" style="background-color: rgba(245, 245, 245, 1); border: 1px solid rgba(204, 204, 204, 1); padding: 5px">
<pre><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">dependency</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">groupId</span><span style="color: rgba(0, 0, 255, 1)">></span>org.springframework.boot<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">groupId</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">artifactId</span><span style="color: rgba(0, 0, 255, 1)">></span>spring-boot-starter-web<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">artifactId</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">dependency</span><span style="color: rgba(0, 0, 255, 1)">></span></pre>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">pom.xml文件中默认有两个模块:</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal" style="mso-list: l3 level1 lfo5"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-shading: #ffffff"><span style="mso-list: ignore">2、</span></span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">编写controller内容</span></p>
<div class="cnblogs_code" style="background-color: rgba(245, 245, 245, 1); border: 1px solid rgba(204, 204, 204, 1); padding: 5px">
<pre><span style="color: rgba(0, 0, 0, 1)">@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}</span></pre>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal" style="mso-list: l3 level1 lfo5"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-shading: #ffffff"><span style="mso-list: ignore">3、</span></span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">启动主程序,打开浏览器访问http://localhost:8080/hello,就可以看到效果了,有木有很简单!</span></p>
<p class="MsoNormal"> </p>
<p class="MsoToc2"><strong><span style="font-size: 14pt; font-family: 仿宋; font-weight: bold; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-spacerun: 'yes'">如何做单元测试</span></strong></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">打开的src/test/</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">下的测试入口</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">,编写简单的http请求来测试;使用mockmvc进行,利用</span><span class="16" style="font-size: 8pt; font-family: consolas; background: rgba(247, 247, 247, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-spacerun: 'yes'; mso-shading: #f7f7f7">MockMvcResultHandlers.print()</span><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">打印出执行结果。</span></p>
<div class="cnblogs_code" style="background-color: rgba(245, 245, 245, 1); border: 1px solid rgba(204, 204, 204, 1); padding: 5px">
<pre></pre>
<p> @RunWith(SpringRunner.class)<br> @SpringBootTest</p>
<pre><span style="color: rgba(0, 0, 0, 1)">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();
}
}</span></pre>
</div>
<p class="MsoToc2"><strong><span style="font-size: 14pt; font-family: 仿宋; font-weight: bold; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-spacerun: 'yes'">开发环境的调试</span></strong></p>
<p class="MsoNormal" style="text-align: left"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">热启动在正常开发项目中已经很常见了吧,虽然平时开发 web 项目过程中,改动项目启重启总是报错;但 Spring Boot 对调试支持很好,修改之后可以实时生效,需要添加以下的配置:</span></p>
<div class="cnblogs_code" style="background-color: rgba(245, 245, 245, 1); border: 1px solid rgba(204, 204, 204, 1); padding: 5px">
<p class="pre"><dependencies></p>
<p class="pre"><span class="15"> <span class="15" style="color: rgba(255, 0, 0, 1)"> <dependency></span></span></p>
<p class="pre"><span class="15" style="color: rgba(255, 0, 0, 1)"> <groupId><span class="15">org.springframework.boot</groupId></span></span></p>
<p class="pre"><span class="15" style="color: rgba(255, 0, 0, 1)"> <artifactId><span class="15">spring-boot-devtools</artifactId></span></span></p>
<p class="pre"><span class="15" style="color: rgba(255, 0, 0, 1)"> <optional><span class="15">true</optional></span></span></p>
<p class="pre"><span style="color: rgba(255, 0, 0, 1)"> </dependency></span></p>
<p class="pre"></dependencies></p>
<p class="pre"><build></p>
<p class="pre"><span class="15"> <plugins></span></p>
<p class="pre"><span class="15"> <plugin></span></p>
<p class="pre"><span class="15"> <groupId><span class="15">org.springframework.boot</groupId></span></span></p>
<p class="pre"><span class="15"> <artifactId><span class="15">spring-boot-maven-plugin</artifactId></span></span></p>
<p class="pre"><span class="15"> <span style="color: rgba(255, 0, 0, 1)"><configuration></span></span></p>
<p class="pre"><span class="15" style="color: rgba(255, 0, 0, 1)"> <fork><span class="15">true</fork></span></span></p>
<p class="pre"><span class="15" style="color: rgba(255, 0, 0, 1)"> </configuration></span></p>
<p class="pre"><span class="15"> </plugin></span></p>
<p class="pre"> </plugins></p>
<p class="pre"></build></p>
</div>
<p class="MsoNormal" style="text-align: left"><span style="font-size: 12pt; font-family: 仿宋; background: rgba(255, 255, 255, 1); text-transform: none; font-weight: normal; color: rgba(51, 51, 51, 1); font-style: normal; letter-spacing: 0.15pt; mso-font-kerning: 1.0000pt; mso-spacerun: 'yes'; mso-shading: #ffffff">该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。</span></p>
<p class="MsoNormal" style="text-align: left"> </p>
<h1 style="text-align: left; margin: 0; text-autospace: ideograph-numeric; text-indent: 0; mso-pagination: widow-orphan; mso-para-margin-right: 0.0000gd; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000; padding: 0"><strong><span style="font-size: 16pt; font-family: 仿宋; text-transform: none; font-weight: bold; color: rgba(0, 71, 221, 1); font-style: normal; letter-spacing: 0; mso-font-kerning: 22.0000pt; mso-spacerun: 'yes'">总结</span></strong></h1>
<p class="MsoNormal" style="text-align: left">使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。</p>
<p class="MsoNormal" style="text-align: left"> </p>
<p><strong>示例代码-github</strong></p>
<p><strong>示例代码-码云</strong></p>
<p><span style="font-size: 14pt"><strong>Spring Boot 中文索引 </strong></span></p>
<p> </p>
<hr>
<h2>Spring Boot 2.0</h2>
<p><strong>Favorites-web:云收藏(Spring Boot 2.0 实战开源项目)</strong></p>
<p><strong>示例代码</strong></p>
<ul>
<li>spring-boot-hello:Spring Boot 2.0 Hello World 示例</li>
<li>spring-boot-banner:Spring Boot 定制 Banner 示例</li>
<li>spring-boot-docker:使用 Docker 部署 Spring Boot 示例</li>
<li>dockercompose-springboot-mysql-nginx :Docker Compose + Spring Boot + Nginx + Mysql 示例</li>
<li>spring-boot-commandLineRunner :Spring Boot 使用 commandLineRunner 实现项目启动时资源初始化示例</li>
<li>spring-boot-web-thymeleaf :Spring Boot 使用 thymeleaf 实现布局、验参、增删改查示例</li>
<li>spring-boot-memcache-spymemcached :Spring Boot 使用 spymemcached 集成 memcache 示例</li>
<li>spring-boot-webflux :Spring Boot webflux 示例</li>
</ul>
<p><strong>参考文章</strong></p>
<ul>
<li>Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布</li>
<li>Spring Boot 2(二):Spring Boot 2.0尝鲜-动态 Banner</li>
<li>Spring Boot 2(三):Spring Boot 开源软件都有哪些?</li>
<li>Spring Boot 2(四):使用 Docker 部署 Spring Boot</li>
<li>Spring Boot 2(五):Docker Compose + Spring Boot + Nginx + Mysql 实践</li>
<li>Spring Boot 2(六):使用 Docker 部署 Spring Boot 开源软件云收藏</li>
<li>Spring Boot 2(七):Spring Boot 如何解决项目启动时初始化资源</li>
<li>Spring Boot 2(八):Spring Boot 集成 Memcached</li>
<li>Spring Boot 2 (九):【重磅】Spring Boot 2.1.0 权威发布</li>
<li>Spring Boot/Cloud 研发团队介绍</li>
<li>Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门</li>
</ul>
<p><img src="http://www.itmind.net/assets/images/java.jpg" alt=""></p>
<p><strong>示例代码</strong></p>
<ul>
<li>spring-boot-helloWorld:Spring Boot 的 hello World 版本</li>
<li>spring-boot-web:Spring Boot Web 开发综合示例</li>
<li>spring-boot-redis:Spring Boot 集成 Redis 示例</li>
<li>spring-boot-jpa:Spring Boot 使用 Jpa 各种示例</li>
<li>spring-boot-mybaits-annotation:注解版本</li>
<li>spring-boot-mybaits-xml:Xml 配置版本</li>
<li>spring-boot-mybatis-xml-mulidatasource:Spring Boot + Mybatis (Xml 版) 多数据源最简解决方案</li>
<li>spring-boot-mybatis-annotation-mulidatasource:Spring Boot + Mybatis(注解版)多数据源最简解决方案</li>
<li>spring-boot-thymeleaf:Spring Boot 使用 Thymeleaf 详细示例</li>
<li>spring-boot-jpa-thymeleaf-curd:Spring Boot + Jpa + Thymeleaf 增删改查示例</li>
<li>spring-boot-rabbitmq:Spring Boot 和 Rabbitmq 各种消息应用案例</li>
<li>spring-boot-scheduler:Spring Boot 和定时任务案例</li>
<li>spring-boot-mail:Spring Boot 和邮件服务</li>
<li>spring-boot-mongodb:Spring Boot 和 Mongodb 的使用</li>
<li>spring-boot-multi-mongodb:Spring Boot 和 Mongodb 多数据源的使用</li>
<li>spring-boot-package-war: Spring Boot 打包成 War 包示例</li>
<li>spring-boot-shiro:Spring Boot 整合 Shiro Rbac 示例</li>
<li>spring-boot-file-upload:使用 Spring Boot 上传文件示例</li>
<li>spring-boot-fastDFS:Spring Boot 整合 FastDFS 示例</li>
<li>spring-boot-actuator:Spring Boot Actuator 使用示例</li>
<li>spring-boot-admin-simple:Spring Boot Admin 的使用示例</li>
</ul>
<p><strong>参考文章</strong></p>
<ul>
<li>Spring Boot(一):入门篇</li>
<li>Spring Boot(二):Web 综合开发</li>
<li>Spring Boot(三):Spring Boot 中 Redis 的使用</li>
<li>Spring Boot(四):Thymeleaf 使用详解</li>
<li>Spring Boot(五):Spring Data Jpa 的使用</li>
<li>Spring Boot(六):如何优雅的使用 Mybatis</li>
<li>Spring Boot(七):Spring Boot + Mybatis 多数据源最简解决方案</li>
<li>Spring Boot(八):RabbitMQ 详解</li>
<li>Spring Boot(九):定时任务</li>
<li>Spring Boot(十):邮件服务</li>
<li>Spring Boot(十一):Spring Boot 中 Mongodb 的使用</li>
<li>Spring Boot(十二):Spring Boot 如何测试打包部署</li>
<li>Spring Boot(十三):Spring Boot 小技巧</li>
<li>Spring Boot(十四):Spring Boot 整合 Shiro-登录认证和权限管理</li>
<li>Spring Boot(十五):Spring Boot + Jpa + Thymeleaf 增删改查示例</li>
<li>Spring Boot(十六):使用 Jenkins 部署 Spring Boot</li>
<li>Spring Boot(十七):使用 Spring Boot 上传文件</li>
<li>Spring Boot(十八):使用 Spring Boot 集成 FastDFS</li>
<li>Spring Boot(十九):使用 Spring Boot Actuator 监控应用</li>
<li>Spring Boot(二十):使用 spring-boot-admin 对 Spring Boot 服务进行监控</li>
</ul>
<p><strong>Spring Boot 实战:我们的第一款开源项目</strong></p>
<hr>
<blockquote>
<p>如果大家想了解关于 Spring Boot 的其它方面应用,也可以以issues的形式反馈给我,我后续来完善。</p>
</blockquote>
<p> </p>
<h2>–end</h2>
<p>最近又赶上跳槽的高峰期(招聘旺季),好多读者都问我要有没有最新面试题,找华为朋友整理一份内部资料《第6版:互联网大厂面试题》并分类 4 份 PDF,累计 926 页!</p>
<p>整个资料包,包括 Spring、Spring Boot/Cloud、Dubbo、JVM、集合、多线程、JPA、MyBatis、MySQL、大数据、Nginx、Git、Docker、GitHub、Servlet、JavaWeb、IDEA、Redis、算法、面试题等几乎覆盖了 Java 基础和阿里巴巴等大厂面试题等、等技术栈!</p>
<p style="text-align: center"> </p>
<p style="text-align: center"><img src="https://img-blog.csdnimg.cn/img_convert/90bbe70a9ec7bfca9bccbe15efa3a808.png" alt="" width="560" height="259"></p>
<p style="text-align: center"><br>据说已经有小伙伴通过这套资料,成功的入职了蚂蚁金服、字节跳动等大厂。</p>
<p style="text-align: center"> </p>
<p style="text-align: center"><img src="https://img-blog.csdnimg.cn/img_convert/1ba73259302f589f3d5f8d767df0cf11.png" alt="" width="519" height="357"></p>
<p style="text-align: center"> </p>
<p style="text-align: center">而且,这些资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:</p>
<p style="text-align: center"><br><img src="https://img-blog.csdnimg.cn/img_convert/1ba73259302f589f3d5f8d767df0cf11.png" alt="" width="521" height="358"></p>
<p style="text-align: center"> </p>
<p style="text-align: center">那么如何获取这份资料呢?</p>
<p style="text-align: center"><strong><span style="color: rgba(255, 0, 0, 1)">关注下方公众号回复:555</span></strong></p>
<p style="text-align: center"><img src="https://img-blog.csdnimg.cn/img_convert/994b1a805d65310c027749ef95fed63b.png" alt=""></p>
<ol>
<li style="text-align: center">关注上方公众号</li>
<li style="text-align: center">在公众号内后台回复 【<span style="color: rgba(255, 0, 0, 1)">555</span>】 即可。</li>
</ol></div>
<p></p>
<p></audio></p>
</div>
<div id="MySignature" role="contentinfo">
<div>
<p style="border-top: #e0e0e0 1px dashed; border-right: #e0e0e0 1px dashed; border-bottom: #e0e0e0 1px dashed; border-left: #e0e0e0 1px dashed; padding-top: 5px; padding-right: 10px; padding-bottom: 10px; padding-left: 150px; background: url("https://images.cnblogs.com/cnblogs_com/ityouknow/914073/o_keep.jpg") #e5f1f4 no-repeat 1% 50%; font-family: 微软雅黑; font-size: 11px" id="PSignature">
<br>
作者:<span style="font-weight: bold; font-size: large">纯洁的微笑</span>
<br>
出处:www.ityouknow.com
<br>
资源:微信搜<strong>【纯洁的微笑】</strong>关注我,回复 <strong>【程序员】【面试】【架构师】</strong>有我准备的一线程序必备计算机书籍、大厂面试资料和免费电子书。 <strong>一共1024G的资料,希望可以帮助大家提升技术和能力。</strong>
<br>
<br>
<span style="font-size: large; color: #F00; display: none">
本文如对您有帮助,还请多帮 【推荐】 下此文。
</span><br>
<span style="font-size: large; color: #F00">点我了解:Cxy521-程序员一站式导航网站
</span>
<br>
</p>
</div><br><br>
来源:https://www.cnblogs.com/ityouknow/p/5662753.html
頁:
[1]