SSM框架搭建入门实例(一)

1.SSM简介

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

2.工具及版本

2.1 JDK1.8
2.2 Intelli j IDEA 2019.2.4
2.3 Maven 3.6.2
2.4 Tomcat 9.0
2.5 windows 10系统
2.6 MySQL 8.0.15
注意:MySQL须有已创建的数据库,例如:(本例mydatabase数据库与book数据表)
在这里插入图片描述
在这里插入图片描述

3.开始搭建

3.1 创建项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
接下来,需要引入一些其他的依赖:
参考pom.xml文件内容如下:


<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>com.ssm</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>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- spring web jar包 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.1.0.RELEASE</version>
    </dependency>

    <!-- spring aop jar包 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>5.1.0.RELEASE</version>
    </dependency>

    <!-- spring 驱动jar包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.1.0.RELEASE</version>
    </dependency>

    <!-- spring mvc 依赖包 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.0.RELEASE</version>
    </dependency>

    <!--mybatis jar包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>

    <!--  mybatis spring-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>

      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.15</version>
      </dependency>
    
    <!-- jstl依赖 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.28</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>demo</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>


导入新加入的依赖:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
接下来完善工程目录结构:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以相同的方式在main目录下创建另一个目录resources:
在这里插入图片描述
接下来分别将java目录和resources目录标记为Source Root和Resource Root:
在这里插入图片描述
完成效果如下:
在这里插入图片描述
继续完善目录:在这里插入图片描述
完成java目录下的编码以及resources目录下的配置:
在这里插入图片描述

以下是每个文件的参考内容:

  1. Book类

import java.io.Serializable;

public class Book implements Serializable {
    //书籍编号
    private Long bno;

    //书籍名称
    private String bname;

    //书籍价格
    private  Double price;

    public Long getBno() {
        return bno;
    }

    public void setBno(Long bno) {
        this.bno = bno;
    }

    public String getBname() {
        return bname;
    }

    public void setBname(String bname) {
        this.bname = bname;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }
    
}

  1. BookDao 接口

import com.ssm.demo.entity.Book;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface BookDao {

    //声明一个查询出所有书籍信息的方法
    List<Book> selectAllBook();
}

  1. BookService接口

import com.ssm.demo.entity.Book;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public interface BookService {
    //声明一个展示所有书籍的方法
    List<Book> showBooks();
}

  1. BookServiceImpl实现类

import com.ssm.demo.dao.BookDao;
import com.ssm.demo.entity.Book;
import com.ssm.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookServiceImpl implements BookService {

    /*
    *注入一个BookDao对象,
    * 利用bookDao提供的selectAllBook()方法来实现Service中展示所有书籍的功能方法
     */
    @Autowired
    private BookDao bookDao;

    @Override
    public List<Book> showBooks(){
        return bookDao.selectAllBook();
    }
}

5.BookController类


import com.ssm.demo.entity.Book;
import com.ssm.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/")
public class BookController {
    @Autowired
    private BookService bookService;

    @RequestMapping("/queryAllBooks")
    public List<Book> queryAllBooks(){
        return bookService.showBooks();
    }
}

6.BookMapper.xml配置文件
在这里插入图片描述

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.demo.dao.BookDao">
    <select id="selectAllBook" resultType="com.ssm.demo.entity.Book">
        select * from book;
    </select>
</mapper>

  1. spring_boot.xml配置文件
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191121101725579.png
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:contxt="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/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 扫描 service 包下面使用@Component/@Service/@Repository/@Controller 注解的类 将其实例化,放入容器中   -->
    <contxt:component-scan base-package="com.ssm.demo" />

    <!--创建数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- 数据库驱动 -->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <!-- 数据库连接 -->
        <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
        <!-- 数据库用户名 -->
        <property name="username" value="root"/>
        <!-- 数据库密码 -->
        <property name="password" value="2557876426"/>
    </bean>

    <!-- 配置mybatis  -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 数据源的实例化 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 映射 DML 语法 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>
    <!-- 映射 数据访问层 ( dao ) 中的接口 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.ssm.demo.dao"/>
    </bean>


</beans>
  1. spring_web.xml
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:contxt="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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">

    <!-- 扫描 控制层 (web) 下面 @Controller 注解的类 将其实例化,放入容器中 -->
    <contxt:component-scan base-package="com.ssm.demo"/>
    <!-- 启动 mvc 的常用注解 -->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="false">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
            <!-- 配置Fastjson支持 -->
            <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <!--将所有的静态资源,交给 Servlet 处理-->
    <mvc:default-servlet-handler/>

    <!--配置 view 解析器-->
    <!-- 页面接受数据 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>
  1. web.xml配置文件
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <display-name>Archetype Created Web Application</display-name>

  <!--配置 Spring 容器-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring_root.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--配置 Spring mvc 容器-->
  <!--将所有请求,都交给Spring MVC 处理-->
  <servlet>
    <servlet-name>webs</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring_web.xml</param-value>
    </init-param>
  </servlet>

  <!--将 请求 截取 转交给 webs -->
  <servlet-mapping>
    <servlet-name>webs</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

到此所有文件配置完成,接下来就可以运行程序了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行成功会跳出页面:
在这里插入图片描述
显示Hello World是因为:
在这里插入图片描述
接下来运行已经写好的数据库查询:
在这里插入图片描述
在这里插入图片描述
访问运行的结果如下:
在这里插入图片描述
查询成功!

发布了2 篇原创文章 · 获赞 3 · 访问量 140

猜你喜欢

转载自blog.csdn.net/weixin_41878295/article/details/103156259
今日推荐