Spring Boot知識點總結(jié)

一四啰、Spring Boot、Spring MVC 和 Spring 有什么區(qū)別?

SpringFrame

SpringFramework 最重要的特征是依賴注入。所有 SpringModules 不是依賴注入就是 IOC 控制反轉(zhuǎn)躏将。

當我們恰當?shù)氖褂?DI 或者是 IOC 的時候,我們可以開發(fā)松耦合應用考蕾。松耦合應用的單元測試可以很容易的進行祸憋。

SpringMVC

Spring MVC 提供了一種分離式的方法來開發(fā) Web 應用。通過運用像 DispatcherServelet肖卧,MoudlAndView 和 ViewResolver 等一些簡單的概念夺衍,開發(fā) Web 應用將會變的非常簡單。

SpringBoot

Spring 和 SpringMVC 的問題在于需要配置大量的參數(shù)喜命。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix">
    <value>/WEB-INF/views/</value>
  </property>
  <property name="suffix">
    <value>.jsp</value>
  </property>
  </bean>
  
<mvc:resources mapping="/webjars/**" location="/webjars/"/>

Spring Boot 通過一個自動配置和啟動的項來目解決這個問題沟沙。為了更快的構(gòu)建產(chǎn)品就緒應用程序,Spring Boot 提供了一些非功能性特征壁榕。

二矛紫、什么是自動配置?

Spring 和 SpringMVC 的問題在于需要配置大量的參數(shù)牌里。

我們能否帶來更多的智能颊咬?當一個 MVC JAR 添加到應用程序中的時候,我們能否自動配置一些 beans牡辽?

Spring 查看(CLASSPATH 上可用的框架)已存在的應用程序的配置喳篇。在此基礎上,Spring Boot 提供了配置應用程序和框架所需要的基本配置态辛。這就是自動配置麸澜。

三、什么是 Spring Boot Stater 奏黑?

啟動器是一套方便的依賴描述符炊邦,它可以放在自己的程序中。你可以一站式的獲取你所需要的 Spring 和相關技術熟史,而不需要依賴描述符的通過示例代碼搜索和復制粘貼的負載馁害。

例如,如果你想使用 Sping 和 JPA 訪問數(shù)據(jù)庫蹂匹,只需要你的項目包含 spring-boot-starter-data-jpa 依賴項碘菜,你就可以完美進行。

四限寞、你能否舉一個例子來解釋更多 Staters 的內(nèi)容忍啸?

讓我們來思考一個 Stater 的例子 -Spring Boot Stater Web。

如果你想開發(fā)一個 web 應用程序或者是公開 REST 服務的應用程序昆烁。Spring Boot Start Web 是首選吊骤。讓我們使用 Spring Initializr 創(chuàng)建一個 Spring Boot Start Web 的快速項目。

Spring Boot Start Web 的依賴項

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

下面的截圖是添加進我們應用程序的不同的依賴項


圖片.png

依賴項可以被分為

Spring - core静尼,beans白粉,context,aop

Web MVC - (Spring MVC)

Jackson - for JSON Binding

Validation - Hibernate,Validation API

Enbedded Servlet Container - Tomcat

Logging - logback,slf4j

任何經(jīng)典的 Web 應用程序都會使用所有這些依賴項鼠渺。Spring Boot Starter Web 預先打包了這些依賴項鸭巴。

作為一個開發(fā)者,我不需要再擔心這些依賴項和它們的兼容版本拦盹。

五鹃祖、Spring Boot 還提供了其它的哪些 Starter Project Options?

Spring Boot 也提供了其它的啟動器項目包括普舆,包括用于開發(fā)特定類型應用程序的典型依賴項恬口。

spring-boot-starter-web-services - SOAP Web Services

spring-boot-starter-web - Web 和 RESTful 應用程序

spring-boot-starter-test - 單元測試和集成測試

spring-boot-starter-jdbc - 傳統(tǒng)的 JDBC

spring-boot-starter-hateoas - 為服務添加 HATEOAS 功能

spring-boot-starter-security - 使用 SpringSecurity 進行身份驗證和授權(quán)

spring-boot-starter-data-jpa - 帶有 Hibeernate 的 Spring Data JPA

spring-boot-starter-data-rest - 使用 Spring Data REST 公布簡單的 REST 服務

六校读、Spring 是如何快速創(chuàng)建產(chǎn)品就緒應用程序的?

Spring Boot 致力于快速產(chǎn)品就緒應用程序祖能。為此歉秫,它提供了一些譬如高速緩存,日志記錄养铸,監(jiān)控和嵌入式服務器等開箱即用的非功能性特征雁芙。

spring-boot-starter-actuator - 使用一些如監(jiān)控和跟蹤應用的高級功能

spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 選擇您的特定嵌入式 Servlet 容器

spring-boot-starter-logging - 使用 logback 進行日志記錄

spring-boot-starter-cache - 啟用 Spring Framework 的緩存支持

Spring2 和 Spring5 所需要的最低 Java 版本是什么?

Spring Boot 2.0 需要 Java8 或者更新的版本钞螟。Java6 和 Java7 已經(jīng)不再支持兔甘。

推薦閱讀:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes

七、創(chuàng)建一個 Spring Boot Project 的最簡單的方法是什么鳞滨?

Spring Initializr是啟動 Spring Boot Projects 的一個很好的工具洞焙。

圖片.png

就像上圖中所展示的一樣,我們需要做一下幾步:

  • 登錄 Spring Initializr太援,按照以下方式進行選擇:
  • 選擇 com.in28minutes.springboot 為組
  • 選擇 studet-services 為組件
  • 選擇下面的依賴項
    Web
    Actuator
    DevTools
  • 點擊生 GenerateProject
  • 將項目導入 Idea闽晦。文件 - 導入 - 現(xiàn)有的 Maven 項目

八、Spring Initializr 是創(chuàng)建 Spring Boot Projects 的唯一方法嗎提岔?

不是的仙蛉。

Spring Initiatlizr 讓創(chuàng)建 Spring Boot 項目變的很容易,但是碱蒙,你也可以通過設置一個 maven 項目并添加正確的依賴項來開始一個項目荠瘪。

在我們的 Spring 課程中,我們使用兩種方法來創(chuàng)建項目赛惩。

第一種方法是 start.spring.io 哀墓。
另外一種方法是在項目的標題為“Basic Web Application”處進行手動設置。

手動設置一個 maven 項目

這里有幾個重要的步驟:

  • 在 Idea中喷兼,使用文件 - 新建 Maven 項目來創(chuàng)建一個新項目
  • 添加依賴項篮绰。
  • 添加 maven 插件。
  • 添加 Spring Boot 應用程序類季惯。

到這里吠各,準備工作已經(jīng)做好!

九勉抓、為什么我們需要 spring-boot-maven-plugin?

spring-boot-maven-plugin 提供了一些像 jar 一樣打包或者運行應用程序的命令贾漏。

  • spring-boot:run 運行你的 SpringBooty 應用程序。
  • spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可執(zhí)行
  • spring-boot:start 和 spring-boot:stop 管理 Spring Boot 應用程序的生命周期(也可以說是為了集成測試)藕筋。
  • spring-boot:build-info 生成執(zhí)行器可以使用的構(gòu)造信息纵散。

十、如何使用 SpringBoot 自動重裝我的應用程序?

使用 Spring Boot 開發(fā)工具伍掀。

把 Spring Boot 開發(fā)工具添加進入你的項目是簡單的掰茶。

把下面的依賴項添加至你的 Spring Boot Project pom.xml 中

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <scope>runtime</scope>
</dependency>

重啟應用程序,然后就可以了硕盹。

同樣的符匾,如果你想自動裝載頁面,有可以看看 FiveReload

在我測試的時候瘩例,發(fā)現(xiàn)了 LiveReload 漏洞,如果你測試時也發(fā)現(xiàn)了甸各,請一定要告訴我垛贤。

十一、什么是嵌入式服務器趣倾?我們?yōu)槭裁匆褂们度胧椒掌髂?

思考一下在你的虛擬機上部署應用程序需要些什么聘惦。

第一步: 安裝 Java

第二部: 安裝 Web 或者是應用程序的服務器(Tomat/Wbesphere/Weblogic 等等)

第三部: 部署應用程序 war 包

如果我們想簡化這些步驟,應該如何做呢儒恋?

讓我們來思考如何使服務器成為應用程序的一部分善绎?

你只需要一個安裝了 Java 的虛擬機,就可以直接在上面部署應用程序了诫尽,
是不是很爽禀酱?

這個想法是嵌入式服務器的起源。

當我們創(chuàng)建一個可以部署的應用程序的時候牧嫉,我們將會把服務器(例如剂跟,tomcat)嵌入到可部署的服務器中。

例如酣藻,對于一個 Spring Boot 應用程序來說曹洽,你可以生成一個包含 Embedded Tomcat 的應用程序 jar。你就可以想運行正常 Java 應用程序一樣來運行 web 應用程序了辽剧。

嵌入式服務器就是我們的可執(zhí)行單元包含服務器的二進制文件(例如送淆,tomcat.jar)。

十二怕轿、如何在 Spring Boot 中添加通用的 JS 代碼偷崩?

在源文件夾下,創(chuàng)建一個名為 static 的文件夾撤卢。然后环凿,你可以把你的靜態(tài)的內(nèi)容放在這里面。

例如放吩,myapp.js 的路徑是 resources\static\js\myapp.js

你可以參考它在 jsp 中的使用方法

<script src="/js/myapp.js"></script>

錯誤:HAL browser gives me unauthorized error - Full authenticaition is required to access this resource.

該如何來修復這個錯誤呢智听?

{
  "timestamp": 1488656019562,
  "status": 401,
  "error": "Unauthorized",
  "message": "Full authentication is required to access this resource.",
  "path": "/beans"
}

兩種方法:

方法 1:關閉安全驗證

application.properties

management.security.enabled:FALSE

方法二:在日志中搜索密碼并傳遞至請求標頭中

十三、什么是 Spring Data?

Spring Data 的使命是在保證底層數(shù)據(jù)存儲特殊性的前提下到推,為數(shù)據(jù)訪問提供一個熟悉的考赛,一致性的,基于 Spring 的編程模型莉测。這使得使用數(shù)據(jù)訪問技術颜骤,關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫,map-reduce 框架以及基于云的數(shù)據(jù)服務變得很容易捣卤。

為了讓它更簡單一些忍抽,Spring Data 提供了不受底層數(shù)據(jù)源限制的 Abstractions 接口。

下面來舉一個例子

interface TodoRepository extends CrudRepository<Todo, Long>{
}

你可以定義一簡單的庫董朝,用來插入鸠项,更新,刪除和檢索代辦事項子姜,而不需要編寫大量的代碼祟绊。

十四、什么是 Spring Data REST?

Spring Data TEST 可以用來發(fā)布關于 Spring 數(shù)據(jù)庫的 HATEOAS RESTful 資源哥捕。

下面是一個使用 JPA 的例子

@RepositoryRestResource(collectionResourceRel = "todos", path = "todos")
public interface TodoRepository
        extends PagingAndSortingRepository<Todo, Long> {
}

不需要寫太多代碼牧抽,我們可以發(fā)布關于 Spring 數(shù)據(jù)庫的 RESTful API。

下面展示的是一些關于 TEST 服務器的例子

POST

  • URL:http://localhost:8080/todos
  • Use Header:Content-Type:Type:application/json
  • Request Content

代碼如下

{
  "user": "Jill",
  "desc": "Learn Hibernate",
  "done": false
}

響應內(nèi)容

{
  "user": "Jill",
  "desc": "Learn Hibernate",
  "done": false,
  "_links": {
"self": {
  "href": "http://localhost:8080/todos/1"
},
"todo": {
  "href": "http://localhost:8080/todos/1"
}
  }
}

響應包含新創(chuàng)建資源的 href遥赚。

十五扬舒、path=”users”, collectionResourceRel=”users” 如何與 Spring Data Rest 一起使用?

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRestRepository extends
PagingAndSortingRepository<User, Long> 
  • path- 這個資源要導出的路徑段鸽捻。
  • collectionResourceRel- 生成指向集合資源的鏈接時使用的 rel 值呼巴。在生成 HATEOAS 鏈接時使用。

十六御蒲、當 Spring Boot 應用程序作為 Java 應用程序運行時衣赶,后臺會發(fā)生什么?

當你啟動 java 應用程序的時候厚满,spring boot 自動配置文件就會魔法般的啟用了府瞄。

  • 當 Spring Boot 應用程序檢測到你正在開發(fā)一個 web 應用程序的時候,它就會啟動 tomcat碘箍。

十七遵馆、我們能否在 spring-boot-starter-web 中用 jetty 代替 tomcat?

在 spring-boot-starter-web 移除現(xiàn)有的依賴項丰榴,并把下面這些添加進去货邓。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

十八、如何使用 Spring Boot 生成一個 WAR 文件四濒?

推薦閱讀:

下面有 spring 說明文檔直接的鏈接地址:

十九换况、如何使用 Spring Boot 部署到不同的服務器职辨?

你需要做下面兩個步驟:

  • 在一個項目中生成一個 war 文件。

  • 將它部署到你最喜歡的服務器(websphere 或者 Weblogic 或者 Tomcat and so on)戈二。

第一步:這本入門指南應該有所幫助:
https://spring.io/guides/gs/convert-jar-to-war/

第二步:取決于你的服務器舒裤。

二十、RequestMapping 和 GetMapping 的不同之處在哪里觉吭?

  • RequestMapping 具有類屬性的腾供,可以進行 GET,POST,PUT 或者其它的注釋中具有的請求方法。

  • GetMapping 是 GET 請求方法中的一個特例鲜滩。它只是 ResquestMapping 的一個延伸伴鳖,目的是為了提高清晰度。

二十一绒北、為什么我們不建議在實際的應用程序中使用 Spring Data Rest?

我們認為 Spring Data Rest 很適合快速原型制造黎侈!在大型應用程序中使用需要謹慎。

通過 Spring Data REST 你可以把你的數(shù)據(jù)實體作為 RESTful 服務直接發(fā)布闷游。

當你設計 RESTful 服務器的時候,最佳實踐表明贴汪,你的接口應該考慮到兩件重要的事情:

  • 你的模型范圍脐往。
  • 你的客戶。

通過 With Spring Data REST扳埂,你不需要再考慮這兩個方面业簿,只需要作為 TEST 服務發(fā)布實體。

這就是為什么我們建議使用 Spring Data Rest 在快速原型構(gòu)造上面阳懂,或者作為項目的初始解決方法梅尤。對于完整演變項目來說,這并不是一個好的注意岩调。

二十二巷燥、在 Spring Initializer 中,如何改變一個項目的包名字号枕?

好消息是你可以定制它缰揪。點擊鏈接“轉(zhuǎn)到完整版本”。你可以配置你想要修改的包名稱葱淳!

二十三钝腺、可以配置 application.propertierde 的完整的屬性列表在哪里可以找到?

這里是完整的指南:

二十四赞厕、JPA 和 Hibernate 有哪些區(qū)別艳狐?

簡而言之

  • JPA 是一個規(guī)范或者接口
  • Hibernate 是 JPA 的一個實現(xiàn)

當我們使用 JPA 的時候,我們使用 javax.persistence 包中的注釋和接口時皿桑,不需要使用 hibernate 的導入包毫目。

我們建議使用 JPA 注釋蔬啡,因為哦我們沒有將其綁定到 Hibernate 作為實現(xiàn)。后來(我知道 - 小于百分之一的幾率)蒜茴,我們可以使用另一種 JPA 實現(xiàn)星爪。

二十五、業(yè)務邊界應該從哪一層開始粉私?

我們建議在服務層管理義務顽腾。商業(yè)業(yè)務邏輯在商業(yè)層或者服務層,與此同時诺核,你想要執(zhí)行的業(yè)務管理也在該層抄肖。

二十六、使用 Spring Boot 啟動連接到內(nèi)存數(shù)據(jù)庫 H2 的 JPA 應用程序需要哪些依賴項窖杀?

在 Spring Boot 項目中漓摩,當你確保下面的依賴項都在類路里面的時候,你可以加載 H2 控制臺入客。

  • web 啟動器
  • h2
  • jpa 數(shù)據(jù)啟動器

其它的依賴項在下面:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

需要注意的一些地方:

  • 一個內(nèi)部數(shù)據(jù)內(nèi)存只在應用程序執(zhí)行期間存在管毙。這是學習框架的有效方式。
  • 這不是你希望的真是世界應用程序的方式桌硫。
  • 在問題“如何連接一個外部數(shù)據(jù)庫夭咬?”中,我們解釋了如何連接一個你所選擇的數(shù)據(jù)庫铆隘。

二十七卓舵、如何不通過任何配置來選擇 Hibernate 作為 JPA 的默認實現(xiàn)?

因為 Spring Boot 是自動配置的膀钠。

下面是我們添加的依賴項

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

spring-boot-stater-data-jpa 對于 Hibernate 和 JPA 有過渡依賴性掏湾。

當 Spring Boot 在類路徑中檢測到 Hibernate 中,將會自動配置它為默認的 JPA 實現(xiàn)肿嘲。

二十八融击、指定的數(shù)據(jù)庫連接信息在哪里?它是如何知道自動連接至 H2 的睦刃?

這就是 Spring Boot 自動配置的魔力砚嘴。

來自:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html

Spring Boot auto-configuration 試圖自動配置你已經(jīng)添加的基于 jar 依賴項的 Spring 應用程序。比如說涩拙,如果 HSQLDBis 存在你的類路徑中际长,并且,數(shù)據(jù)庫連接 bean 還沒有手動配置兴泥,那么我們可以自動配置一個內(nèi)存數(shù)據(jù)庫工育。

進一步的閱讀:

http://www.springboottutorial.com/spring-boot-auto-configuration

二十九、我們?nèi)绾芜B接一個像 MSSQL 或者 orcale 一樣的外部數(shù)據(jù)庫搓彻?

讓我們以 MySQL 為例來思考這個問題:

第一步 - 把 mysql 連接器的依賴項添加至 pom.xml

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

第二步 - 從 pom.xml 中移除 H2 的依賴項

或者至少把它作為測試的范圍如绸。

<!--
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
-->   

第三步 - 安裝你的 MySQL 數(shù)據(jù)庫

更多的來看看這里 -https://github.com/in28minutes/jpa-with-hibernate#installing-and-setting-up-mysql

第四步 - 配置你的 MySQL 數(shù)據(jù)庫連接

配置 application.properties

spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/todo_example
spring.datasource.username=todouser
spring.datasource.password=YOUR_PASSWORD   

第五步 - 重新啟動嘱朽,你就準備好了!

就是這么簡單怔接!

三十搪泳、Spring Boot 配置的默認 H2 數(shù)據(jù)庫的名字是上面?為什么默認的數(shù)據(jù)庫名字是 testdb扼脐?

在 application.properties 里面岸军,列出了所有的默認值

找到下面的屬性

spring.datasource.name=testdb # Name of the datasource.

如果你使用了 H2 內(nèi)部存儲數(shù)據(jù)庫,它里面確定了 Spring Boot 用來安裝你的 H2 數(shù)據(jù)庫的名字瓦侮。

三十一艰赞、如果 H2 不在類路徑里面,會出現(xiàn)上面情況肚吏?

將會報下面的錯誤

Cannot determine embedded database driver class for database type NONE

把 H2 添加至 pom.xml 中方妖,然后重啟你的服務器

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>

三十二、你能否舉一個以 ReadOnly 為事務管理的例子罚攀?

  • 當你從數(shù)據(jù)庫讀取內(nèi)容的時候党觅,你想把事物中的用戶描述或者是其它描述設置為只讀模式,以便于 Hebernate 不需要再次檢查實體的變化斋泄。這是非常高效的仔役。

三十三、發(fā)布 Spring Boot 用戶應用程序自定義配置的最好方法是什么是己?

@Value 的問題在于,您可以通過應用程序分配你配置值任柜。更好的操作是采取集中的方法卒废。
你可以使用 @ConfigurationProperties 定義一個配置組件。

@Component
@ConfigurationProperties("basic")
public class BasicConfiguration {
    private boolean value;
    private String message;
    private int number;

你可以在 application.properties 中配置參數(shù)宙地。

basic.value: true
basic.message: Dynamic Message
basic.number: 100

三十四摔认、配置文件的需求是什么?

企業(yè)應用程序的開發(fā)是復雜的宅粥,你需要混合的環(huán)境:

  • dev
  • prod
  • test
    在每個環(huán)境中参袱,你想要不同的應用程序配置。

配置文件有助于在不同的環(huán)境中進行不同的應用程序配置秽梅。

Spring 和 Spring Boot 提供了你可以制定的功能抹蚀。

  • 不同配置文件中,不同環(huán)境的配置是什么企垦?
  • 為一個制定的環(huán)境設置活動的配置文件环壤。

Spring Boot 將會根據(jù)特定環(huán)境中設置的活動配置文件來選擇應用程序的配置。

三十五钞诡、如何使用配置文件通過 Spring Boot 配置特定環(huán)境的配置郑现?

配置文件不是設別環(huán)境的關鍵湃崩。

在下面的例子中,我們將會用到兩個配置文件

  • dev
  • prod
    缺省的應用程序配置在 application.properties 中接箫。讓我們來看下面的例子:

application.properties

basic.value= true
basic.message= Dynamic Message
basic.number= 100

我們想要為 dev 文件自定義 application.properties 屬性攒读。我們需要創(chuàng)建一個名為 application-dev.properties 的文件,并且重寫我們想要自定義的屬性辛友。

application-dev.properties

basic.message: Dynamic Message in DEV

一旦你特定配置了配置文件薄扁,你需要在環(huán)境中設定一個活動的配置文件。

有多種方法可以做到這一點:

  • 在 VM 參數(shù)中使用 Dspring.profiles.active=prod
  • 在 application.properties 中使用 spring.profiles.active=prod
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞎领,一起剝皮案震驚了整個濱河市泌辫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌九默,老刑警劉巖震放,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異驼修,居然都是意外死亡殿遂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門乙各,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墨礁,“玉大人,你說我怎么就攤上這事耳峦《骶玻” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵蹲坷,是天一觀的道長驶乾。 經(jīng)常有香客問我,道長循签,這世上最難降的妖魔是什么级乐? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮县匠,結(jié)果婚禮上风科,老公的妹妹穿的比我還像新娘。我一直安慰自己乞旦,他們只是感情好贼穆,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杆查,像睡著了一般扮惦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上亲桦,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天崖蜜,我揣著相機與錄音浊仆,去河邊找鬼。 笑死豫领,一個胖子當著我的面吹牛抡柿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播等恐,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼洲劣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了课蔬?” 一聲冷哼從身側(cè)響起囱稽,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎二跋,沒想到半個月后战惊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡扎即,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年吞获,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谚鄙。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡各拷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闷营,到底是詐尸還是另有隱情烤黍,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布傻盟,位于F島的核電站蚊荣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏莫杈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一奢入、第九天 我趴在偏房一處隱蔽的房頂上張望筝闹。 院中可真熱鬧,春花似錦腥光、人聲如沸关顷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽议双。三九已至,卻和暖如春捉片,著一層夾襖步出監(jiān)牢的瞬間平痰,已是汗流浹背汞舱。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宗雇,地道東北人昂芜。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像赔蒲,于是被迫代替她去往敵國和親泌神。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,838評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理舞虱,服務發(fā)現(xiàn)欢际,斷路器,智...
    卡卡羅2017閱讀 134,693評論 18 139
  • 入門 介紹 Spring Boot Spring Boot 使您可以輕松地創(chuàng)建獨立的矾兜、生產(chǎn)級的基于 Spring ...
    Hsinwong閱讀 16,897評論 2 89
  • 2018.3.4 星期日 天氣下雨 今天是寒假的最后一天损趋,上午文宇在家背誦了新安小學開學典禮誓詞,讀了關于...
    收獲之夜閱讀 118評論 0 0
  • 司馬騰時間管理學院核心2群7組高飛讀書筆記40/51 一個人之所以選擇去努力焕刮,不就是為了不想在年華老去之后鄙視自己...
    高飛1閱讀 91評論 0 0