面試題中級

1.mongodb

      mongodb只能存放內(nèi)網(wǎng)、存放在公網(wǎng)2018年有被攻擊的案例,大部分公司并未開啟權(quán)限所以很危險螟蒸。
      mongodb是一款NOSQL非關(guān)系型數(shù)據(jù)庫瑟慈。
      Nosql數(shù)據(jù)庫的優(yōu)缺點
      優(yōu)點:快速的讀寫、低廉的成本、靈活的數(shù)據(jù)模型
      缺點:不提供對sql的支持 支持的特性不搞 現(xiàn)有的產(chǎn)品不夠成熟
      Mongodb面向集合存儲
      模式自由 
      支持動態(tài)查詢 
      支持完全索引,包含內(nèi)部對象 
      支持復(fù)制和故障恢復(fù) 
      使用高效的二進制數(shù)據(jù)存儲,包括大型對象 
      文件存儲格式為BSON(一種JSON的擴展)
      文檔(document)是MongoDB中數(shù)據(jù)的基本單元牲览,非常類似于關(guān)系型數(shù)據(jù)庫系統(tǒng)中的行(但是比行要復(fù)雜的多)。
      集合(collection)就是一組文檔恶守,如果說MongoDB中的文檔類似于關(guān)系型數(shù)據(jù)庫中的行第献,那么集合就如同表。
      MongoDB的單個計算機可以容納多個獨立的數(shù)據(jù)庫兔港,每一個數(shù)據(jù)庫都有自己的集合和權(quán)限庸毫。
      MongoDB自帶簡潔但功能強大的JavaScript shell,這個工具對于管理MongoDB實例和操作數(shù)據(jù)作用非常大衫樊。
      每一個文檔都有一個特殊的鍵”_id”,它在文檔所處的集合中是唯一的飒赃,相當(dāng)于關(guān)系數(shù)據(jù)庫中的表的主鍵。

2.Spring IOC AOP 執(zhí)行流程步驟(簡略)

          方便解耦科侈,簡化開發(fā) (高內(nèi)聚低耦合) 
              Spring就是一個大工廠(容器)载佳,可以將所有對象創(chuàng)建和依賴關(guān)系維護,交給Spring管理 
              spring工廠是用于生成bean
          AOP編程的支持 
              Spring提供面向切面編程臀栈,可以方便的實現(xiàn)對程序進行權(quán)限攔截蔫慧、運行監(jiān)控等功能
          聲明式事務(wù)的支持 
              只需要通過配置就可以完成對事務(wù)的管理,而無需手動編程
          方便程序的測試 
              Spring對Junit4支持权薯,可以通過注解方便的測試Spring程序
          方便集成各種優(yōu)秀框架 
              Spring不排斥各種優(yōu)秀的開源框架姑躲,其內(nèi)部提供了對各種優(yōu)秀框架(如:Struts、Hibernate崭闲、MyBatis肋联、Quartz等)的直接支持
          降低JavaEE API的使用難度 
              Spring 對JavaEE開發(fā)中非常難用的一些API(JDBC威蕉、JavaMail刁俭、遠程調(diào)用等),都提供了封裝韧涨,使這些API應(yīng)用難度大大降低
Springioc
1.容器初始化
    1牍戚、Resource定位:
    2侮繁、從Resource中解析和載入BeanDefinition
    3、BeanDefinition在IOC容器的注冊
2.IOC容器依賴注入
   1如孝、getBean第一次調(diào)用lazy-init的bean
   2宪哩、lazy-init==false初始化(只對singleton,也是默認(rèn)方式)

SpringAop
    1第晰、初始化Advisor鏈
    2锁孟、生成代理類
    3、調(diào)用時攔截
  aop底層將采用代理機制進行實現(xiàn)茁瘦。
  接口 + 實現(xiàn)類 :spring采用 jdk 的動態(tài)代理Proxy品抽。
  實現(xiàn)類:spring 采用 cglib字節(jié)碼增強。

    自行理解

Spring IOC和Spring AOP的實現(xiàn)原理(源碼主線流程) - zedosu - 博客園

3.struts

    Struts2 框架的優(yōu)點
    了解了這幾個主要的優(yōu)點甜熔,會促使你考慮使用Struts2 :
    POJO表單及POJO操作 - Struts2 去除掉了Struts框架中的Action Forms部分圆恤。在Struts2框架下,你可以用任何一POJO來接收表單輸入腔稀,同樣的盆昙,你可以把任一POJO視為一個Action類。
    標(biāo)簽支持 - Struts2 改進了標(biāo)簽表單焊虏,而新的標(biāo)簽可讓開發(fā)人員減少代碼編寫量淡喜。
    AJAX支持 - Struts2 被認(rèn)可接收進Web 2.0技術(shù),并創(chuàng)建了功能非常類似于標(biāo)準(zhǔn)的Struts2 標(biāo)簽的AJAX標(biāo)簽诵闭,把AJAX支持整合進其結(jié)果中拆火。
    易于整合 - Struts有多種整合方式可使用,現(xiàn)在與其他類型的框架涂圆,如Spring们镜、Tiles、SiteMesh之類的润歉,整合更為容易了模狭。
    模板支持 - 支持使用模板生成視圖。
    插件支持 - 有大量的插件可用于Struts2踩衩,而使用插件可以增強和擴大Struts2 核心行為嚼鹉。
    性能分析 - Struts2 為調(diào)試和配置應(yīng)用程序提供綜合的性能分析,此外驱富,Struts也以嵌入調(diào)試工具的形式提供集成調(diào)試锚赤。
    易于修改標(biāo)簽 - 在Struts2 中,可使用Freemarker的模板對標(biāo)簽標(biāo)記進行調(diào)整褐鸥,而修改標(biāo)簽不需要JSP或是Java知識线脚,基本的HTML、XML和CSS知識就足夠了。
    促進減少配置 - Struts2 使用各種設(shè)置的默認(rèn)值促進減少配置浑侥,而你不需要再配置什么除非是偏離了Struts2 設(shè)定的默認(rèn)設(shè)置姊舵。
    視圖技術(shù) - Struts2 為多種視圖選項(JSP、Freemarker寓落、Velocity括丁、XSLT等)提供支持。
    以上是使Struts2 成為準(zhǔn)企業(yè)框架的十大優(yōu)點伶选。
    Struts2 框架的缺點
    盡管Struts2 有一大列的優(yōu)點史飞,但我們還是要提到關(guān)于它的一些仍需不斷改進的缺點:
    更大的學(xué)習(xí)曲線 - 使用Struts MVC,你必須要熟悉JSP仰税、Servlet APIs標(biāo)準(zhǔn)以及一個大型祸憋、復(fù)雜的框架。
    文檔缺乏 - 相比于Servlet和JSP APIs標(biāo)準(zhǔn)肖卧,Struts的在線資源較少蚯窥,許多初學(xué)者會發(fā)現(xiàn)Apache在線文檔混亂并缺乏整理。
    不夠透明 - 相比于使用正常的基于Java的Web應(yīng)用程序塞帐,使用Struts的應(yīng)用程序有許多是進行在后臺拦赠,這使得框架不易于理解。
    最后說明一點葵姥,一個好的框架應(yīng)該提供各種類型的應(yīng)用程序都可以使用的通用行為荷鼠,Struts2 是最好的Web框架之一,并頻繁用于RIA(Rich Internet Applications)的發(fā)展榔幸。

4.mybatis

1.#{}和${}的區(qū)別是什么
      ${}是Properties文件中的變量占位符允乐,它可以用于標(biāo)簽屬性值和sql內(nèi)部,屬于靜態(tài)文本替換削咆,比如${driver}會被靜態(tài)替換為com.mysql.jdbc.Driver牍疏。#{}是sql的參數(shù)占位符,Mybatis會將sql中的#{}替換為?號拨齐,在sql執(zhí)行前會使用PreparedStatement的參數(shù)設(shè)置方法鳞陨,按序給sql的?號占位符設(shè)置參數(shù)值,比如ps.setInt(0, parameterValue)瞻惋,#{item.name}的取值方式為使用反射從參數(shù)對象中獲取item對象的name屬性值厦滤,相當(dāng)于param.getItem().getName()。
      MyBatis 是一款優(yōu)秀的持久層框架歼狼,它支持定制化 SQL掏导、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集羽峰。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息趟咆,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄添瓷。
  2.Xml映射文件中,除了常見的select|insert|updae|delete標(biāo)簽之外忍啸,還有哪些標(biāo)簽?
  3.<resultMap>履植、<parameterMap>计雌、<sql>、<include>玫霎、<selectKey>凿滤,加上動態(tài)sql的9個標(biāo)簽,trim|where|set|foreach|if|choose|when|otherwise|bind等庶近,其中<sql>為sql片段標(biāo)簽翁脆,通過<include>標(biāo)簽引入sql片段,<selectKey>為不支持自增的主鍵生成策略標(biāo)簽鼻种。
  4.Mybatis是如何進行分頁的反番?分頁插件的原理是什么?
  5.Mybatis使用RowBounds對象進行分頁叉钥,它是針對ResultSet結(jié)果集執(zhí)行的內(nèi)存分頁罢缸,而非物理分頁,可以在sql內(nèi)直接書寫帶有物理分頁的參數(shù)來完成物理分頁功能投队,也可以使用分頁插件來完成物理分頁枫疆。

分頁插件的基本原理是使用Mybatis提供的插件接口,實現(xiàn)自定義插件敷鸦,在插件的攔截方法內(nèi)攔截待執(zhí)行的sql息楔,然后重寫sql,根據(jù)dialect方言扒披,添加對應(yīng)的物理分頁語句和物理分頁參數(shù)值依。
6.Mybatis的Xml映射文件中,不同的Xml映射文件碟案,id是否可以重復(fù)鳞滨?
不同的Xml映射文件,如果配置了namespace蟆淀,那么id可以重復(fù)拯啦;如果沒有配置namespace,那么id不能重復(fù)熔任;畢竟namespace不是必須的褒链,只是最佳實踐而已。
原因就是namespace+id是作為Map<String, MappedStatement>的key使用的疑苔,如果沒有namespace甫匹,就剩下id,那么,id重復(fù)會導(dǎo)致數(shù)據(jù)互相覆蓋兵迅。有了namespace抢韭,自然id就可以重復(fù),namespace不同恍箭,namespace+id自然也就不同刻恭。

7.oracle
Oracle面試題(基礎(chǔ)篇) - long77 - 博客園

8.maven maven 多模塊
[maven] Maven面試寶典 - wfh6732的博客 - CSDN博客

  1.  docker是容器技術(shù),你可以把他理解成為一種輕量形的虛擬機扯夭。docker的啟    動時間是毫秒級鳍贾,普通虛擬機的啟   動時間是秒級 或者是分鐘級 
     docker為什么在業(yè)務(wù)上比普通虛擬機更火,因為他的交付快交洗,
     不管客戶是什么linux的分支骑科,只要幾行命令,
     就可以將開發(fā)環(huán)境快速遷移至客戶機器上
     舉個很簡單的列子 
     我們在一臺新電腦上安裝java環(huán)境
     在以前我們需要上傳jre或者jdk的安裝包构拳,我們需要解壓 安裝 配置環(huán)境 
     特別是配置環(huán)境對于新用戶來說極其不友好咆爽,因為一旦配置錯誤,就會導(dǎo)致系統(tǒng)進不去 
     但是有了docker之后置森,
     幾行命令就可以安裝好你想要的java環(huán)境 
     而且還比虛擬機更少的占用資源
     docker容器太多了 管理起來不方便所以有了k8s
    

10.maven多模塊構(gòu)建步驟

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven- 
4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
           <!--父模塊的 groupId伍掀、artifactId、version暇藏,子模塊可以通過parent繼承父模塊蜜笤,使用的就是這里定義 
             的value-->
   <groupId>com.liangyt</groupId>
   <artifactId>maven-multi-module</artifactId>
   <version>1.0-SNAPSHOT</version>

   <!--根pom必須要有-->
   <packaging>pom</packaging>
   <!--子模塊-->
   <modules>
       <module>service</module>
       <module>provide</module>
       <module>consumer</module>
   </modules>

   <properties>
       <java-version>1.8</java-version>
       <service-version>1.0-SNAPSHOT</service-version>
       <spring-boot-version>1.5.4.RELEASE</spring-boot-version>
   </properties>

   <!--
       使用dependencyManagement的話,則子模塊不會自動繼承父POM依賴盐碱;
       需要子模塊顯示定義需要的依賴把兔,如果不寫 version 則使用父POM定義的version,如果子模塊的依賴寫了version則使用子模塊的。
   -->
   <dependencyManagement>
       <dependencies>
           <!--該依賴?yán)锩嫫鋵嵾€包含了很多其它的依賴瓮顽,這里只是為了示范县好,生產(chǎn)環(huán)境可以細化,只添加需要的依賴-->
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
               <version>${spring-boot-version}</version>
           </dependency>
           <!--定義子模塊包暖混,其他子模塊可以引用-->
           <dependency>
               <groupId>com.liangyt</groupId>
               <artifactId>service</artifactId>
               <version>${service-version}</version>
           </dependency>
       </dependencies>
   </dependencyManagement>

   <build>
       <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <configuration>
                   <fork>true</fork>
               </configuration>
           </plugin>
           <plugin>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                   <source>${java-version}</source>
                   <target>${java-version}</target>
               </configuration>
           </plugin>
       </plugins>
   </build>
</project>
service
  <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!--繼承的父模塊-->
      <parent>
       <artifactId>maven-multi-module</artifactId>
            <groupId>com.liangyt</groupId>
       <version>1.0-SNAPSHOT</version>
      </parent>

      <modelVersion>4.0.0</modelVersion>

   <!--一般跟父模塊下的模塊名一致缕贡,也是其它模塊引用的名稱-->
   <artifactId>service</artifactId>
   <!--
       發(fā)版的版本號,如果重新發(fā)布了新的版本,則父模塊添加的該依賴需要新的版本的話還需要相應(yīng)的修改一下才能引用新的發(fā)布包
   -->
   <version>1.0-SNAPSHOT</version>

   <packaging>jar</packaging>

   <!--
       需要哪個依賴就添加哪個依賴:
       如果父模塊里面有該依賴的話拣播,則只要不填寫版本則跟父模塊版本一樣晾咪;
       如果寫了版本號,則跟父模塊沒有什么關(guān)系贮配;
   -->
   <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
   </dependencies>
</project>

provide
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
       <artifactId>maven-multi-module</artifactId>
       <groupId>com.liangyt</groupId>
       <version>1.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <artifactId>provide</artifactId>

   <dependencies>
       <!--引用service模塊-->
       <dependency>
           <groupId>com.liangyt</groupId>
           <artifactId>service</artifactId>
       </dependency>
   </dependencies>
</project>

12.resuful風(fēng)格優(yōu)點

*前后端分離谍倦,減少流量
安全問題集中在接口上,由于接受json格式泪勒,防止了注入型等安全問題
前端無關(guān)化昼蛀,后端只負責(zé)數(shù)據(jù)處理宴猾,前端表現(xiàn)方式可以是任何前端語言(android,ios,html5)
前端和后端人員更加專注于各自開發(fā)叼旋,只需接口文檔便可完成前后端交互仇哆,無需過多相互了解
服務(wù)器性能優(yōu)化:由于前端是靜態(tài)頁面,通過nginx便可獲取夫植,服務(wù)器主要壓力放在了接口上*

13.什么是json

      *JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation)
      JSON 是輕量級的文本數(shù)據(jù)交換格式
      JSON 獨立于語言 *
      JSON 具有自我描述性讹剔,更易理解*

14.cxf

  *CXF框架特點
  A、與Spring偷崩、Servlet做了無縫對接辟拷,cxf框架里面集成了Servlet容器Jetty

  B撞羽、支持注解的方式來發(fā)布webservice

  C阐斜、能夠顯示一個webservice的服務(wù)列表

  D、能夠添加攔截器:輸入攔截器诀紊、
  輸出攔截器 :輸入日志信息攔截器谒出、輸出日志攔截器、用戶權(quán)限認(rèn)證的攔截器*

13.函數(shù)和存儲過程的區(qū)別:

  1邻奠、存儲過程用戶在數(shù)據(jù)庫中完成特定操作或者任務(wù)(如插入笤喳,刪除等),函數(shù)用于返回特定的數(shù)據(jù)碌宴。

  2杀狡、存儲過程聲明用procedure,函數(shù)用function贰镣。

  3呜象、存儲過程不需要返回類型,函數(shù)必須要返回類型碑隆。

  4恭陡、存儲過程可作為獨立的pl-sql執(zhí)行,函數(shù)不能作為獨立的plsql執(zhí)行上煤,必須作為表達式的一部分休玩。

  5、存儲過程只能通過out和in/out來返回值劫狠,函數(shù)除了可以使用out拴疤,in/out以外,還可以使用return返回值独泞。

  6遥赚、sql語句(DML或SELECT)中不可用調(diào)用存儲過程,而函數(shù)可以阐肤。
  1. 索引建立規(guī)則

    如果有兩個或者以上的索引凫佛,其中有一個唯一性索引讲坎,而其他是非唯一,這種情況下oracle將使用唯一性索引而完全忽略非唯一性索引
    
    2. 至少要包含組合索引的第一列(即如果索引建立在多個列上愧薛,只有它的第一個列被where子句引用時晨炕,優(yōu)化器才會使用該索引)
    
    3. 小表不要建立索引
    
    4. 對于基數(shù)大的列適合建立B樹索引,對于基數(shù)小的列適合簡歷位圖索引
    
    5. 列中有很多空值毫炉,但經(jīng)常查詢該列上非空記錄時應(yīng)該建立索引
    
    6. 經(jīng)常進行連接查詢的列應(yīng)該創(chuàng)建索引
    
    7. 使用create index時要將最常查詢的列放在最前面
    
    8. LONG(可變長字符串?dāng)?shù)據(jù)瓮栗,最長2G)和LONG RAW(可變長二進制數(shù)據(jù),最長2G)列不能創(chuàng)建索引
    
    9.限制表中索引的數(shù)量(創(chuàng)建索引耗費時間瞄勾,并且隨數(shù)據(jù)量的增大而增大费奸;索引會占用物理空間;當(dāng)對表中的數(shù)據(jù)進行增加进陡、刪除和修改的時候愿阐,索引也要動態(tài)的維護,降低了數(shù)據(jù)的維護速度)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趾疚,一起剝皮案震驚了整個濱河市缨历,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糙麦,老刑警劉巖辛孵,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赡磅,居然都是意外死亡魄缚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門焚廊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冶匹,“玉大人,你說我怎么就攤上這事节值♂愎瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵搞疗,是天一觀的道長嗓蘑。 經(jīng)常有香客問我,道長匿乃,這世上最難降的妖魔是什么桩皿? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮幢炸,結(jié)果婚禮上泄隔,老公的妹妹穿的比我還像新娘。我一直安慰自己宛徊,他們只是感情好佛嬉,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布逻澳。 她就那樣靜靜地躺著,像睡著了一般暖呕。 火紅的嫁衣襯著肌膚如雪斜做。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天湾揽,我揣著相機與錄音瓤逼,去河邊找鬼。 笑死库物,一個胖子當(dāng)著我的面吹牛霸旗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播戚揭,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼诱告,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毫目?” 一聲冷哼從身側(cè)響起蔬啡,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诲侮,失蹤者是張志新(化名)和其女友劉穎镀虐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沟绪,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡刮便,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绽慈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恨旱。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坝疼,靈堂內(nèi)的尸體忽然破棺而出搜贤,到底是詐尸還是另有隱情,我是刑警寧澤钝凶,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布仪芒,位于F島的核電站,受9級特大地震影響耕陷,放射性物質(zhì)發(fā)生泄漏掂名。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一哟沫、第九天 我趴在偏房一處隱蔽的房頂上張望饺蔑。 院中可真熱鬧,春花似錦嗜诀、人聲如沸猾警。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽发皿。三九已至融击,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雳窟,已是汗流浹背尊浪。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留封救,地道東北人拇涤。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像誉结,于是被迫代替她去往敵國和親鹅士。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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