[JavaWeb]SSM框架整合 idea+spring+springMVC+Mybatis框架搭建教程

1槽片、預(yù)備知識(shí)及工具何缓。

  • 掌握java語言基礎(chǔ)知識(shí)。
  • 了解基本的MySQL相關(guān)知識(shí)还栓。
  • 了解http協(xié)議碌廓。
  • 了解Jdbc技術(shù)。
  • 了解maven項(xiàng)目管理工具蝙云。

2氓皱、 開發(fā)環(huán)境

  • 操作系統(tǒng):macOS 10.13.4
  • IDE:IntelliJ IDEA
  • JDK版本:jdk1.7
  • Web服務(wù)器:tomcat 8.5.242
  • 版本控制工具:git 2.15.1
  • 項(xiàng)目管理工具:maven 3.5.2
  • 數(shù)據(jù)庫:mysql 14.14
    開發(fā)環(huán)境配置可以按照上面的順序在網(wǎng)上搜索相應(yīng)的安裝配置教程。

3勃刨、搭建過程

3.1 框架搭建前波材,先在MySQL創(chuàng)建我們需要查詢的數(shù)據(jù)庫。

  1. 打開數(shù)據(jù)庫身隐,并連接到數(shù)據(jù)中廷区。


  2. 新建一個(gè)名為demo的數(shù)據(jù)庫。
CREATE DATABASE demo DEFAULT CHARACTER SET utf8;
  1. 在demo數(shù)據(jù)庫下贾铝,新建名為t_user數(shù)據(jù)表隙轻。
CREATE TABLE t_user (
  id    BIGINT       NOT NULL,
  name  VARCHAR(50)  COMMENT '姓名',
  age   INTEGER      COMMENT '年齡'
);
  1. 給t_user表中插入測(cè)試數(shù)據(jù)。


3.2 使用idea新建maven項(xiàng)目垢揩,并對(duì)項(xiàng)目運(yùn)行環(huán)境進(jìn)行配置玖绿。

01.png
02.png
03.png
05.png
06.png
07.png
08.png
09.png
10.png
11.png
12.png
13.png
14.png
15.png
16.png
17.png
18.png
19.png
20.png

3.3 建立maven項(xiàng)目的目錄結(jié)構(gòu),并在maven的pom.xml配置文件中添加項(xiàng)目所需要的依賴包叁巨。(注意:盡量和我的pom.xml保持一樣斑匪,避免因?yàn)榘姹締栴},出現(xiàn)錯(cuò)誤)

21.png
22.png
23.png
24.png
25.png
26.png
27.png
28.png
  • 完整pom.xml文件在下面文件給出锋勺,可復(fù)制蚀瘸。


    29.png
30.png
31.png
32.png
33.png
34.png
35.png

3.4 編寫demo項(xiàng)目類文件狡蝶。

類文件分為三層:

  • dao即Data Access Object,數(shù)據(jù)訪問對(duì)象贮勃。
  • controller贪惹,控制層,用來接收http請(qǐng)求寂嘉。
  • service奏瞬,業(yè)務(wù)邏輯層,用來處理與業(yè)務(wù)相關(guān)的邏輯垫释。


    36.png
  • 完整項(xiàng)目結(jié)構(gòu)如下圖丝格。


    41.png

    UserControll.java
UserDao.java
UserEntity.java
UserService.java
37.png

38.png
  • 配置文件及類文件如下,文件中注釋對(duì)配置進(jìn)行了說明棵譬。
  • pom.xml
<?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>site.wzhe.spring</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>demo Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <spring.version>4.3.16.RELEASE</spring.version>
    <mysql-connector-java.version>5.1.17</mysql-connector-java.version>
    <mybatis.version>3.4.4</mybatis.version>
    <mybatis-spring.version>1.3.1</mybatis-spring.version>
    <c3p0.version>0.9.1.2</c3p0.version>
    <jackson.version>2.9.5</jackson.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql-connector-java.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>${mybatis-spring.version}</version>
    </dependency>
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>${c3p0.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>${jackson.version}</version>
    </dependency>

  </dependencies>

  <build>
    <finalName>demo</finalName>
  </build>
</project>
  • .gitignore
# Maven #
target/

# IDEA #
.idea/
*.iml

# Eclipse #
.settings/
.metadata/
.classpath
.project
Servers/
  • web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

  <!-- 加載Spring容器配置 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- Spring容器加載所有bean的配置文件的路徑 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring/applicationContext.xml</param-value>
  </context-param>


  <!-- 配置SpringMVC核心控制器,將所有的請(qǐng)求(除了剛剛Spring MVC中的靜態(tài)資源請(qǐng)求)都交給Spring MVC -->
  <!-- DispatcherServlet上下文在初始化的時(shí)候會(huì)建立自己的IoC上下文,用以持有spring mvc相關(guān)的bean预伺。 -->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:spring/applicationContext-mvc.xml</param-value>
    </init-param>
    <!--用來標(biāo)記是否在項(xiàng)目啟動(dòng)時(shí)就加在此Servlet,0或正數(shù)表示容器在應(yīng)用啟動(dòng)時(shí)就加載這個(gè)Servlet,
    當(dāng)是一個(gè)負(fù)數(shù)時(shí)或者沒有指定時(shí)订咸,則指示容器在該servlet被選擇時(shí)才加載.正數(shù)值越小啟動(dòng)優(yōu)先值越高  -->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!--為DispatcherServlet建立映射-->
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <!-- 攔截所有請(qǐng)求,千萬注意是(/)而不是(/*) -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!-- 設(shè)置編碼過濾器 -->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>
  • jdbc.properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456

jdbc.initialPoolSize=20
jdbc.maxPoolSize=100
jdbc.minPoolSize=10
jdbc.maxIdleTime=600
jdbc.acquireIncrement=5
jdbc.maxStatements=50
jdbc.idleConnectionTestPeriod=60
  • UserDaoMapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="site.wzhe.spring.demo.dao.UserDao">
    <select id="getById" parameterType="java.lang.Long" resultType="User">
        SELECT id, username, age
        FROM t_user
        WHERE id = #{id, jdbcType=BIGINT}
    </select>
</mapper>
  • mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        <!--實(shí)體類匹配成XXXMapper.xml中可以直接使用的類型,相當(dāng)于一個(gè)別名酬诀,在XXXMapper.xml中就無需再寫完整的實(shí)體類全路徑脏嚷,直接用alias的值來代替-->
<configuration>
    <typeAliases>
        <typeAlias type="site.wzhe.spring.demo.entity.UserEntity" alias="User" />
    </typeAliases>
</configuration>
  • applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- ===============spring容器(父容器)的配置文件 ================== -->
    <context:component-scan base-package="site.wzhe.spring.demo.service"/>
    <!-- 加載jdbc.properties配置文件 -->
    <context:property-placeholder location="classpath:jdbc/jdbc.properties"/>
    <!--數(shù)據(jù)源-鏈接數(shù)據(jù)庫的基本信息-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

        <property name="driverClass" value="${jdbc.driverClassName}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!--mybatis的配置文件-->
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
        <!--掃描 XXXDaoMapper.xml映射文件,配置掃描的路徑-->
        <property name="mapperLocations" value="classpath:mappers/*.xml"></property>
    </bean>

    <!-- DAO接口所在包名,Spring會(huì)自動(dòng)查找之中的類 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="site.wzhe.spring.demo.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

    <!--事務(wù)管理-->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入dataSource-->
        <property name="dataSource" ref="dataSource" />
    </bean>
    <!--開啟事務(wù)注解掃描-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>
  • applicationContext-mvc.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

    <!-- ===============spring web容器(子容器)的配置文件 ================== -->

    <!-- org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler瞒御,
    它會(huì)像一個(gè)檢查員父叙,對(duì)進(jìn)入DispatcherServlet的URL進(jìn)行篩查,如果發(fā)現(xiàn)是靜態(tài)資源的請(qǐng)求肴裙,
    就將該請(qǐng)求轉(zhuǎn)由Web應(yīng)用服務(wù)器默認(rèn)的Servlet處理趾唱,如果不是靜態(tài)資源的請(qǐng)求,才由DispatcherServlet繼續(xù)處理蜻懦。 -->
    <mvc:default-servlet-handler/>

    <!-- 告知Spring甜癞,會(huì)自動(dòng)注冊(cè)DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個(gè)bean,是spring MVC為@Controllers分發(fā)請(qǐng)求所必須的。-->
    <!--SpringMVC相關(guān)如下配置宛乃,經(jīng)過驗(yàn)證悠咱,這個(gè)是SpringMVC必須要配置的,因?yàn)樗暶髁薂RequestMapping征炼、@RequestBody析既、@ResponseBody等。并且谆奥,該配置默認(rèn)加載很多的參數(shù)綁定方法眼坏,比如json轉(zhuǎn)換解析器等。-->
    <mvc:annotation-driven>
        <!-- json請(qǐng)求無法通過@RequestBody轉(zhuǎn)為對(duì)象雄右,添加這個(gè)就可以解決-->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!-- 指定要掃描的包的位置 -->
    <context:component-scan base-package="site.wzhe.spring.demo.controller" />

    <!-- 對(duì)靜態(tài)資源文件的訪問,因?yàn)镾pring MVC會(huì)攔截所有請(qǐng)求,導(dǎo)致jsp頁面中對(duì)js和CSS的引用也被攔截,配置后可以把對(duì)資源的請(qǐng)求交給項(xiàng)目的默認(rèn)servlet而不是Spring MVC-->
    <mvc:resources mapping="/static/**" location="/WEB-INF/static/" />

    <!-- 為RequestMappingHandlerAdapter裝配可處理JSON格式的請(qǐng)求/響應(yīng)消息的HttpMessage Converter-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:messageConverters-ref="messageConverters"/>
    <util:list id="messageConverters">
        <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
        <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
        <bean class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter"/>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
    </util:list>

    <!-- 配置Spring MVC的視圖解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 有時(shí)我們需要訪問JSP頁面,可理解為在控制器controller的返回值加前綴和后綴,變成一個(gè)可用的URL地址 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>
  • UserController.java 文件
package site.wzhe.spring.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import site.wzhe.spring.demo.entity.UserEntity;
import site.wzhe.spring.demo.service.UserService;

/**
 * @author: andup.
 * @description:
 * @date: 2018/7/21.
 */
@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/api/user/{id}", method = RequestMethod.GET)
    @ResponseBody
    UserEntity getById(@PathVariable Long id) {
        return userService.getById(id);
    }
}
  • UserDao.java文件
package site.wzhe.spring.demo.dao;

import site.wzhe.spring.demo.entity.UserEntity;

/**
 * @author: andup.
 * @description:
 * @date: 2018/7/21.
 */
public interface UserDao {
    UserEntity getById(Long id);
}
  • UserEntity.java文件
package site.wzhe.spring.demo.entity;

/**
 * @author: andup.
 * @description:
 * @date: 2018/7/21.
 */
public class UserEntity {

    private Long id;

    private String userName;

    private Integer age;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}
  • UserService.java文件
package site.wzhe.spring.demo.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import site.wzhe.spring.demo.dao.UserDao;
import site.wzhe.spring.demo.entity.UserEntity;

/**
 * @author: andup.
 * @description:
 * @date: 2018/7/21.
 */
@Service
public class UserService {

    @Autowired
    private UserDao userDao;

    public UserEntity getById(Long id) {
        return userDao.getById(id);
    }
}
  • 后面四個(gè)類文件對(duì)應(yīng)項(xiàng)目中類位置如下空骚。


    39.png

3.5 通過游覽器輸入地址纺讲,測(cè)試項(xiàng)目是否運(yùn)行成功。

  • 在游覽器地址欄輸入:localhost:8080/api/user/1


    40.png
  • 后端返回?cái)?shù)據(jù)囤屹。目前大多數(shù)項(xiàng)目都是前后端分離項(xiàng)目熬甚,后端返回?cái)?shù)據(jù),前端進(jìn)行渲染肋坚,展示給用戶乡括。所以,游覽器從后端返回Json格式的數(shù)據(jù)即可智厌。

如果對(duì)你有幫助诲泌,可以關(guān)注我,后續(xù)有更多詳細(xì)教程铣鹏。

原創(chuàng)文章,請(qǐng)勿用于商業(yè)用途,轉(zhuǎn)載請(qǐng)注明出處敷扫。

up

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诚卸,隨后出現(xiàn)的幾起案子葵第,更是在濱河造成了極大的恐慌,老刑警劉巖合溺,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卒密,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棠赛,警方通過查閱死者的電腦和手機(jī)哮奇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睛约,“玉大人鼎俘,你說我怎么就攤上這事√等” “怎么了而芥?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)膀值。 經(jīng)常有香客問我棍丐,道長(zhǎng),這世上最難降的妖魔是什么沧踏? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任歌逢,我火速辦了婚禮,結(jié)果婚禮上翘狱,老公的妹妹穿的比我還像新娘秘案。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布阱高。 她就那樣靜靜地躺著赚导,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赤惊。 梳的紋絲不亂的頭發(fā)上吼旧,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音未舟,去河邊找鬼圈暗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛裕膀,可吹牛的內(nèi)容都是我干的员串。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼昼扛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼寸齐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起野揪,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤访忿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后斯稳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡迹恐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年挣惰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殴边。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡憎茂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锤岸,到底是詐尸還是另有隱情竖幔,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布是偷,位于F島的核電站拳氢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蛋铆。R本人自食惡果不足惜馋评,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刺啦。 院中可真熱鬧留特,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至右核,卻和暖如春慧脱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒙兰。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工磷瘤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搜变。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓采缚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親挠他。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扳抽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)殖侵,斷路器贸呢,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342
  • 好像確實(shí)很久沒有寫過關(guān)于你的故事了茉唉,后來每每與人談起帝牡,總是有種鎮(zhèn)定自若的釋然感随常。說句玩笑話挚币,嘻嘻笑兩聲摘投,一邊嘲笑...
    會(huì)發(fā)光的高麻麻閱讀 316評(píng)論 0 0
  • 上周,老師帶我們?nèi)W(xué)校菌房種豆芽懂傀。首先我們?cè)诒P子上鋪上一張紙趾诗,接著我們?yōu)⑸隙棺硬伷剑鼈兙秃孟褚粭l平平的大馬路蹬蚁,...
    _星月_閱讀 257評(píng)論 0 0
  • 一天的熱鬧恃泪,此刻歸于寧靜。 今天周一缚忧,是孩子們正常上課的第二天悟泵。許是雙休日有些疲累了,今天的午睡闪水,比上周五要好多了...
    趙誠彬閱讀 321評(píng)論 0 4