Spring框架筆記

一:Spring概念介紹

下載Spring框架?spring-framework-4.0.4.RELEASE-dist伯病,4.0.4版官方地址為?http://repo.springsource.org/libs-release-local/org/springframework/spring/4.0.4.RELEASE/ (如果覺(jué)得太慢也可以去國(guó)內(nèi)網(wǎng)站下載)

此外业稼,還需要下載一個(gè)必要組件commons-logging-1.1.3-bin?,可以在http://commons.apache.org/官網(wǎng)下載也可以在國(guó)內(nèi)網(wǎng)站下載空郊。

1:Spring的核心

? ? ? ? (1)IOC(控制反轉(zhuǎn)):

? ? ? ? ? ? ? ? ? ? ? ? ?比如以前:有一個(gè)類(lèi),在類(lèi)里面有一個(gè)方法(不是static方法)盆驹,調(diào)用類(lèi)里面的方法就要?jiǎng)?chuàng)建類(lèi)的對(duì)象与倡,使用對(duì)象調(diào)用方法,創(chuàng)建類(lèi)對(duì)象的過(guò)程李请,對(duì)象需要new出來(lái)瞧筛;

? ? ? ? ? ? ? ? ? ? ? ? ?Spring:對(duì)象的創(chuàng)建不是通過(guò)new方式實(shí)現(xiàn),而是交給Spring配置創(chuàng)建類(lèi)的對(duì)象


? ? ? ? (2)AOP(面向切面):面向切面編程捻艳,擴(kuò)展功能不是修改源代碼實(shí)現(xiàn)


2:Spring的優(yōu)點(diǎn)

? ? ? ? (1)高內(nèi)聚低耦合驾窟,Spring就是一個(gè)大工廠(容器)庆猫,可以將所有對(duì)象創(chuàng)建和依賴(lài)關(guān)系維護(hù)

? ? ? ? (2)聲明式事務(wù)的支持:只需在配置文件聲明就可使用事務(wù)认轨,無(wú)需手動(dòng)編寫(xiě)代碼

3:Spring是一站式框架

? ? ? ? (1)Spring在JavaEE三層架構(gòu)中,每一層都提供不同的解決技術(shù)

? ? ? ? ? ? ? ? - web層:SpringMVC

? ? ? ? ? ? ? ? - service層:Spring的ioc

? ? ? ? ? ? ? ? - dao層月培,Spring 的jdbcTemplate


二:Spring的ioc底層原理

1:把對(duì)象的創(chuàng)建交給Spring進(jìn)行管理

2:ioc操作部分

? ? ? ? (1)ioc的配置文件方式

? ? ? ? (2)ioc的注解方式

? ? ? ? (3)ioc底層原理

? ? ? ? ? ? ? ? ?1:底層實(shí)用技術(shù):

? ? ? ? ? ? ? ? ? ? ?(1)xml配置文件

? ? ? ? ? ? ? ? ? ? ?(2)dom4j解決xml

? ? ? ? ? ? ? ? ? ? ?(3)工廠設(shè)計(jì)模式

? ? ? ? ? ? ? ? ? ? ?(4)反射

? ? ? ? ? ? ? ? ? 2:原理圖

? ? ? ? ? ? ? ? ? ? ? ? 發(fā)展過(guò)程(圖一)

? ? ? ? ? ? ? ? ? ? ? ? ioc最終原理圖(圖二)

原理圖



三:ioc入門(mén)案例

? ? ? ? 第一步:導(dǎo)入jar包

? ? ? ? ? ? ? ? ? ? (1)導(dǎo)入最基本的包?

基礎(chǔ)jar目錄

? ? ? ? ? ? ? ? ? ? (2)導(dǎo)入輸入日志的jar包和一個(gè)必要的組件


jar目錄



????????第二步:創(chuàng)建類(lèi)嘁字,在類(lèi)里面創(chuàng)建方法

? ? ? ? 第三步:創(chuàng)建Spring配置文件,配置創(chuàng)建類(lèi)

? ? ? ? ? ? ? ? ? ? ? ? (1)Spring核心配置文件名稱(chēng)和位置不是固定的

? ? ? ? ? ? ? ? ? ? ? ? (2)引入schema約束

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?下載的框架里面找xsd-config.html 文件打開(kāi)?路徑:spring-framework-4.0.4.RELEASE\docs\spring-framework-reference\html\xsd-config.html

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在頁(yè)面最后

????????????????????????(3)配置對(duì)象創(chuàng)建


? ? ? ? 第四步:寫(xiě)代碼測(cè)試對(duì)象創(chuàng)建

測(cè)試代碼



四:Spring的bean管理(配置文件xml方式)

????????在Spring里面通過(guò)配置文件創(chuàng)建對(duì)象

????????(1)bean實(shí)例化的三種方式

? ? ? ? ? ? ? ? 1:使用類(lèi)的無(wú)參數(shù)構(gòu)造創(chuàng)建(重點(diǎn))


xml配置

? ? ? ? ? ? ? ? ? ? ? ? 類(lèi)里面沒(méi)有無(wú)參數(shù)構(gòu)造杉畜,會(huì)拋異常

? ? ? ? ? ? ? ? 2:靜態(tài)工廠創(chuàng)建對(duì)象(很少用纪蜒,麻煩)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 這里的class寫(xiě)的是工廠(Bean2Factory)的全路徑;factory-mothod 寫(xiě)工廠里面的方法

xml配置
靜態(tài)工廠類(lèi)代碼
測(cè)試代碼

? ? ? ? ? ? ? ? ? ? 3:實(shí)例工廠創(chuàng)建對(duì)象(很少用,麻煩)

xml配置
工廠代碼
測(cè)試代碼

? ? ? ? (2)bean標(biāo)簽的常用屬性

? ? ? ? ? ? ? ? 1:id屬性:起名稱(chēng)此叠,id屬性名稱(chēng)任意命名

? ? ? ? ? ? ? ? ? ? ? ? ? ?- id屬性值纯续,不能包含特殊符號(hào)

? ? ? ? ? ? ? ? ? ? ? ? ? ?- 根據(jù)id值得到配置對(duì)象

? ? ? ? ? ? ? ? 2:class:創(chuàng)建對(duì)象所在了的全路徑

? ? ? ? ? ? ? ? 3:name:跟id的作用是一樣的,但是name屬性可以包含特殊符號(hào)

? ? ? ? ? ? ? ? 4:scope(范圍)屬性 灭袁,寫(xiě)在bean標(biāo)簽里面 猬错,例如:

xml配置圖

? ? ? ? ? ? ? ? ? ? ? ? ?- singleton? ? :默認(rèn)值,單例的(對(duì)象只會(huì)創(chuàng)建一次)

? ? ? ? ? ? ? ? ? ? ? ? ?- prototype? ? :多例的(每次創(chuàng)建對(duì)象都是一個(gè)新的對(duì)象)

? ? ? ? ? ? ? ? ? ? ? ? ?-??request? ? ? :創(chuàng)建對(duì)象放到request域里面? ??

? ?? ? ? ? ? ? ? ? ? ? ? -? session?? ? ?:?創(chuàng)建對(duì)象放到session域里面? ?

? ?? ? ? ? ? ? ? ? ? ? ? -? globalSession(全局Session):創(chuàng)建對(duì)象放到globalSession域里面? ?

? ? ? ? (3)屬性注入方式介紹

? ? ? ? ? ? ? ? 屬性注入:創(chuàng)建對(duì)象的時(shí)候茸歧,向?qū)ο髮傩岳锩嬖O(shè)置值倦炒,就叫做屬性注入

? ? ? ? ? ? ? ? 1:屬性注入的三種方式

? ? ? ? ? ? ? ? ? ? ? ? (1) -?使用屬性的set方法

? ? ? ? ? ? ? ? ? ? ????(2) - 用有參構(gòu)造注入

? ? ? ? ? ? ? ? ? ? ? ? (3) - 使用接口方式注入(很少用)

? ???????????????????????在Spring中,只支持set方法注入有參構(gòu)造注入


三種屬性注入方式


? ? ? ? (4)Spring注入屬性(有參構(gòu)造和set方法)?

? ? ? ? ? ? ? ? 1:有參構(gòu)造


有參構(gòu)造方法

? ? ? ? ? ? ? ? ? ? ? ? ? xml配置软瞎,name填類(lèi)的屬性逢唤,value填設(shè)置的值

xml配置圖



測(cè)試代碼

? ? ? ? ? ? ? ? ? ?2:set方法

類(lèi)代碼
xml配置
測(cè)試代碼

? ? ? ? (5)Spring注入對(duì)象類(lèi)型屬性(重點(diǎn))

? ? ? ? ? ? ? ? 1:創(chuàng)建service類(lèi)和dao類(lèi)

?? ? ? ? ? ? ? ? ? ? ? ?-????在service得到dao對(duì)象

? ? ? ? ? ? ? ? ?2:具體實(shí)現(xiàn)過(guò)程

? ? ? ? ? ? ? ? ? ? ? ? -? ? 在service里面把dao作為類(lèi)型屬性

? ? ? ? ? ? ? ? ? ? ? ? -? ? 生成dao類(lèi)型屬性的set方法?

具體實(shí)現(xiàn)代碼

? ? ? ? ? ? ? ? 3:在配置文件中完成注入

? ? ? ? ? ? ????????ref屬性填寫(xiě)注入的對(duì)象

xml配置圖

? ? ? ? ? ? ? ? ? 4:測(cè)試代碼

測(cè)試代碼


? ? ? ? (6)p名稱(chēng)空間注入(很少用)

? ? ? ? ? ? ? ? 1:引 入p名稱(chēng)空間


xml引入圖


類(lèi)代碼圖?

? ? ? ? ? ? ? ? ? ? p:類(lèi)里面的屬性名="填入值"? ?;例如:p:pname="lucy"

xml配置圖


測(cè)試代碼


? ? ? ? (7)Spring注入復(fù)雜數(shù)據(jù) (很少用)

? ? ? ? ? ? ? ? ? ? - 寫(xiě)類(lèi)代碼


類(lèi)代碼?
String[] arrs配置圖1


List<String>? list配置圖


map和properties配置圖


?測(cè)試代碼

? ??(8)IOC和DI的區(qū)別

? ? ? ? 1:IOC:控制反轉(zhuǎn)涤浇,把對(duì)象的創(chuàng)建交給Spring進(jìn)行配置

? ? ? ? 2:DI:依賴(lài)注入鳖藕,向類(lèi)里面的屬性中設(shè)置值

? ? ? ? 3:關(guān)系:DI(依賴(lài)注入)不能單獨(dú)存在,需要在IOC的基礎(chǔ)上完成操作


? ? ?(9)Spring整合web項(xiàng)目原理

? ? ? ? ? ? ? ? (1)加載Spring核心配置文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ①:new對(duì)象只锭,功能可以實(shí)現(xiàn)著恩,效率很低

? ? ? ? ? ? ? ? ? ?(2)實(shí)現(xiàn)思想:把加載配置文件和創(chuàng)建對(duì)象的過(guò)程,在服務(wù)器啟動(dòng)時(shí)完成

? ? ? ? ? ? ? ? ? ?(3)實(shí)現(xiàn)原理:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ①:ServletContext對(duì)象

? ? ? ? ? ? ? ? ? ? ? ? ? ? ②:監(jiān)聽(tīng)器

? ? ? ? ? ? ? ? ? ? ? ? ? ? ③:具體使用

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 在服務(wù)器啟動(dòng)時(shí),為每個(gè)項(xiàng)目創(chuàng)建一個(gè)ServletContext對(duì)象

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 在ServletContext對(duì)象創(chuàng)建時(shí)页滚,使用監(jiān)聽(tīng)器可以具體到ServletContext對(duì)象在什么時(shí)候創(chuàng)建

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 使用監(jiān)聽(tīng)器監(jiān)聽(tīng)到ServletContext對(duì)象創(chuàng)建時(shí)拼苍,加載Spring配置文件,把配置文件配置對(duì)象創(chuàng)建

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 把創(chuàng)建的出來(lái)的對(duì)象放到ServletContext域?qū)ο罄锩妫╯erAttribute方法)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 獲取對(duì)象時(shí)候稍味,到ServletContext域得到(getAttribute方法)

? ? ? ? (10)Spring整合web項(xiàng)目演示

? ? ? ? ? ? ? ? (1)導(dǎo)入Spring整合web項(xiàng)目jar包

jar包

? ? ? ? ? ? ? ? (2)在web.xml配置文件里面配置監(jiān)聽(tīng)器

監(jiān)聽(tīng)器配置

? ? ? ? ? ? ? ? (3)指定加載Spring配置文件位置(如果不指定配置文件婉弹,就會(huì)報(bào)錯(cuò))

報(bào)錯(cuò)圖

? ? ? ? ? ? ? ? ? ? ? ? ? <param-name>標(biāo)簽的值是固定的

? ? ? ? ? ? ? ? ? ? ? ? ? <param-value>填配置文件的路徑,如果在src里面 直接寫(xiě):classpath:文件名稱(chēng).xml? ? ;如果在包里面幻林,就需要些詳細(xì)路徑:classpath:com.kk.文件名稱(chēng).xml

指定配置文件位置

五:Spring的bean管理(注解方式)

注解:代碼里面特殊的標(biāo)記贞盯,使用注解可以完成功能

注解寫(xiě)法:@注解名稱(chēng)(屬性名稱(chēng)-屬性值)

注解使用在類(lèi)上面,方法上面沪饺,屬性上面

1:Spring注解開(kāi)發(fā)準(zhǔn)備

? ? ? ? (1)導(dǎo)入基本的jar包


Spring基本jar包

? ? ? ? (2)導(dǎo)入aop的jar包

aop的jar包

? ??????(3):創(chuàng)建Spring配置文件躏敢,引入約束

????????????????? ? (1)做ioc只需引入約束beans,但是做Spring的ioc注解開(kāi)發(fā)整葡,需要引入新的約束

? ????????????????? ? ? 約束路徑:spring-framework-4.0.4.RELEASE\docs\spring-framework-reference\html\xsd-config.html

約束圖片

? ? ? ?(4):配置文件中開(kāi)啟注解掃描

xml


2:注解創(chuàng)建對(duì)象


創(chuàng)建對(duì)象圖


?測(cè)試代碼

3:四種注解方式?

????????Spring 中提供@Component的三個(gè)衍生注釋?zhuān)?/p>

????????@Controller? ? ?web層

????????@Service? ? ? ? 業(yè)務(wù)層

????????@Repository? ?持久層

????????四種方式功能是一樣的件余,Spring是為了方便以后擴(kuò)展功能

? ? ? ? (1)????@Controller

? ? ? ? (2)????@Service

????????????????其他都是一樣的方式,其中 value= 可以省略直接寫(xiě)冒號(hào)里面的

@Service注解圖

? ? ? ? (3)????@Repository

? ? ? ? (4)????@Component



4:創(chuàng)建對(duì)象單實(shí)例還是多實(shí)例


實(shí)例圖

5:注解注入屬性

? ? ? ? *????創(chuàng)建service類(lèi) 和 dao類(lèi)

? ? ? ????? ?對(duì)象注入的兩種注解方式

????????????????????????第一種是????@Autowired? ? 在下面創(chuàng)建serivce里面有例子

? ? ? ? ? ? ? ? ? ? ? ? 第二種是? ? @Resource(name="xxxx")? ? ?name屬性值是寫(xiě)創(chuàng)建dao對(duì)象的注釋的value值遭居,也就是需要制定注入哪一個(gè)對(duì)象

注入對(duì)象第二種示例

? ? ? ? *? ? 創(chuàng)建service


Service類(lèi)創(chuàng)建

? ? ? ? *? ? 創(chuàng)建dao類(lèi)


Dao類(lèi)創(chuàng)建

? ? ? ? *? ? 測(cè)試代碼

測(cè)試代碼
效果

6:注釋和配置文件混合使用

? ? ? ? - 創(chuàng)建service類(lèi)和dao類(lèi)并注入屬性啼器,注入方式使用的是注解的方式

service類(lèi)創(chuàng)建
dao類(lèi)創(chuàng)建
dao類(lèi)創(chuàng)建

? ? ? ? - 將對(duì)象的創(chuàng)建交給配置文件

xml配置文件創(chuàng)建對(duì)象

? ? ? ? ? ?- 測(cè)試

測(cè)試代碼
打印的效果


7:AOP原理

? ? ? ? (1) AOP概述

? ? ? ? ? ? ? ? AOP:面向切面(方面)編程,擴(kuò)展功能不修改源代碼實(shí)現(xiàn)

?????????????????AOP采取橫向抽取機(jī)制俱萍,取代了傳統(tǒng)縱向繼承體系重復(fù)性代碼

? ? ? ? (2)AOP底層原理

原始縱向機(jī)制
aop原理

? ? ? ? (3)AOP操作相關(guān)術(shù)語(yǔ)

? ? ? ? ? ? ? ? 1:Joinpoint(連接點(diǎn)):類(lèi)里面的那些方法可以被增強(qiáng)端壳,這些方法稱(chēng)為連接點(diǎn)

? ? ? ? ? ? ? ? 2:Pointcut(切入點(diǎn))重點(diǎn):在類(lèi)里面可以有很多的方法被增強(qiáng),比如實(shí)際操作中枪蘑,只是增強(qiáng)了類(lèi)里面add方法和update方法损谦,實(shí)際增強(qiáng)的方法稱(chēng)為 切入點(diǎn)

? ? ? ? ? ? ? ? 3:Advice(通知/增強(qiáng)):增強(qiáng)的邏輯,稱(chēng)為增強(qiáng)岳颇,比如擴(kuò)展日志功能照捡,這個(gè)日志功能稱(chēng)為增強(qiáng),

? ? ? ? ? ? ? ? ? ? ? ? ? ? 前置通知:在方法之前執(zhí)行

? ? ? ? ? ? ? ? ? ? ? ? ? ? 后置通知:在方法之后執(zhí)行

? ? ? ? ? ? ? ? ? ? ? ? ? ? 異常通知:方法出現(xiàn)異常

? ? ? ? ? ? ? ? ? ? ? ? ? ? 最終通知:在后置之后執(zhí)行

? ? ? ? ? ? ? ? ? ? ? ? ? ? 環(huán)繞通知:在方法之前和之后執(zhí)行

? ? ? ? ? ? ? ? 4:切面:把增強(qiáng)應(yīng)用到具體方法上面赦役,過(guò)程稱(chēng)為切面

? ? ? ? ? ? ? ? ? ? ? ? ? ? 把增強(qiáng)用到切入點(diǎn)的過(guò)程

? ? ? ? ? ? ? ? 沒(méi)那么重要的術(shù)語(yǔ)

? ? ? ? ? ? ? ? 5:Introduction(引介):動(dòng)態(tài)添加功能或者屬性

? ? ? ? ? ? ? ? 6:Target(目標(biāo)對(duì)象):代理的目標(biāo)對(duì)象(要增強(qiáng)的類(lèi))

? ? ? ? ? ? ? ? 7:Weaving(織入):是把增強(qiáng)應(yīng)用到目標(biāo)的過(guò)程

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 把a(bǔ)dvice 應(yīng)用到target的過(guò)程

? ? ? ? ? ? ? ? 8:Proxy(代理):一個(gè)類(lèi)被AOP織入增強(qiáng)后麻敌,就產(chǎn)生一個(gè)結(jié)果代理類(lèi)


8:使用表達(dá)式配置切入點(diǎn)

? ? ? ? (1):切入點(diǎn):實(shí)際增強(qiáng)的方法

? ? ? ? (2):常用的表達(dá)式

? ? ? ? ? ? ? ? ? ?execution(<訪問(wèn)修飾符public,private掂摔,...>?<返回類(lèi)型><方法名>(<參數(shù)>)<異常>)

? ? ? ? ? ? ? ? ? ?1:例如:execution(* net.kuniu.controller.UserDao.text(傳參))

? ? ? ? ? ? ? ? ? ? ? ? 表示的是:增強(qiáng)net.kuniu.controller.UserDao 里面的test() 方法

? ? ? ? ? ? ? ? ? ? 2:execution(* net.kuniu.controller.UserDao.*(傳參))

? ??????????????????????? 表示的是:增強(qiáng)net.kuniu.controller.UserDao 里面的所有方法

? ? ? ? ? ? ? ? ? ? 3:execution(* *.*(傳參))

? ??????????????????????? 表示的是:增強(qiáng)所有類(lèi)的所有方法术羔;

? ??????????????????4:execution(* abc*(傳參))

? ??????????????????????? 表示的是:匹配所有abc開(kāi)頭的方法進(jìn)行增強(qiáng);


9:Spring的AOP操作

? ? ? ? 1:在Spring里面進(jìn)行AOP操作乙漓,使用aspectj實(shí)現(xiàn)對(duì)AOP的操作

? ? ? ? ? ?(1):Aspectj是一個(gè)面向切面的框架

? ? ? ? ? ?(2):Spring2.0以后新增了對(duì)AspectJ的支持

? ? ? ? 2:使用AspectJ實(shí)現(xiàn)AOP有兩種方式

? ? ? ? ? ? (1)基于aspectj的xml配置

? ? ? ? ? ? (2)基于aspectj的注解方式

? ? ? ? 3:AOP操作準(zhǔn)備

? ? ? ? ? ? (1)除了導(dǎo)入最基本的jar包级历,還需要導(dǎo)入AOP相關(guān)的jar包


jar包目錄

? ? ? ? ? ? (2)創(chuàng)建一個(gè)Spring的核心配置文件,導(dǎo)入約束

? ??????????????????? 約束路徑:spring-framework-4.0.4.RELEASE\docs\spring-framework-reference\html\xsd-config.html

? ? ? ? ? ? ? ? ? ? ? ?打開(kāi)網(wǎng)頁(yè)叭披,找到 AOP相關(guān)的約束

AOP約束圖片


? ? ? ? 4:AOP操作

? ??

方法代碼?


xml配置圖


xml配置圖



10:Log4j介紹

? ? ? ? 1:通過(guò)log4j可以看到程序運(yùn)行的過(guò)程中更詳細(xì)的信息

? ? ? ? ? ? ? ? (1)經(jīng)常使用Log4j查看日志?

? ? ? ? 2:Log4j的使用

? ? ? ? ? ? ? ? (1)導(dǎo)入log4j的jar包

? ? ? ? ? ? ? ? (2)復(fù)制Log4j的配置文件寥殖,到src下面

配置文件名稱(chēng)

? ? ? ? ?3:可以設(shè)置日志級(jí)別?


級(jí)別設(shè)置位置

? ? ? ? ? ? ? ? ? ? (1)info:看到基本信息

? ? ? ? ? ? ? ? ? ? (2)debug:看到更詳細(xì)的信息



11:Spring整合web項(xiàng)目演示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玩讳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嚼贡,更是在濱河造成了極大的恐慌熏纯,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粤策,死亡現(xiàn)場(chǎng)離奇詭異樟澜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叮盘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)秩贰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人柔吼,你說(shuō)我怎么就攤上這事毒费。” “怎么了愈魏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵觅玻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蝌戒,道長(zhǎng)串塑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任北苟,我火速辦了婚禮,結(jié)果婚禮上打瘪,老公的妹妹穿的比我還像新娘友鼻。我一直安慰自己,他們只是感情好闺骚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布彩扔。 她就那樣靜靜地躺著,像睡著了一般僻爽。 火紅的嫁衣襯著肌膚如雪虫碉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天胸梆,我揣著相機(jī)與錄音敦捧,去河邊找鬼。 笑死碰镜,一個(gè)胖子當(dāng)著我的面吹牛兢卵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绪颖,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼秽荤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起窃款,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤课兄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后晨继,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體第喳,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年踱稍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了曲饱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡珠月,死狀恐怖扩淀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啤挎,我是刑警寧澤驻谆,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站庆聘,受9級(jí)特大地震影響胜臊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伙判,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一象对、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宴抚,春花似錦勒魔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至常潮,卻和暖如春弟胀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喊式。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工孵户, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垃帅。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓延届,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親贸诚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子方庭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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