美文网首页
Java-SSM-项目搭建

Java-SSM-项目搭建

作者: Vicent_Z | 来源:发表于2021-04-30 17:25 被阅读0次

1.描述

1.1.创建总工程

这里我们使用子模块的方式进行创建,首先创建一个新的项目ssm

File->New->Project

选择maven工程后,点击Next,输入相应的信息

image.png

后点击下一步,并且填写好相应的信息:

image.png

1.2.创建dao层

后点击完成,点击右下角的:Enable Auto-Import

image.png

删除src目录:

image.png

在ssm项目名上右键->New->Module,后依然选择Maven项目,点击下一步:

image.png

设置此模块名称为ssm_dao,点击下一步:

image.png

后点击完成.

1.3.创建biz(业务)层

按照1.2的方式创建ssm_biz层.(只有模块命名时候不一样,命名为ssm_biz即可)

1.4.创建web层

ssm项目名称上右键->New->Module,选择Maven,并且勾选Creat from archetype
选择maven-archetype-webapp,主要不要选成cocoon-22那个.

image.png

命名ArtifactId为ssm_web,一直点击下一步直至完成.

在web模块下的src->main文件夹上右键创建java和resources文件夹

image.png

菜单栏:File->Project Structure打开窗口后,点击Module下的ssm_web

image.png

展开main,点击java后点击Sources,点击resources后点击Resources

image.png image.png

最后点击OK,使其生效.

1.5.配置pom文件:

ssm工程的pom文件不需要操作

dao工程的pom文件配置

    <properties>
        <spring.version>4.0.2.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.4</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</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-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>
    </dependencies>

biz的pom文件核心代码:

    <properties>
        <spring.version>4.0.2.RELEASE</spring.version>
    </properties>


    <dependencies>
        <!--依赖dao,使其可以调用其模块的方法-->
        <dependency>
            <groupId>com.zy</groupId>
            <artifactId>ssm_dao</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--负责在spring框架中实现事务管理功能-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--使用Spring的AOP特性时所需的类-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--支持切入点表达式等等-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.0</version>
        </dependency>
    </dependencies>

web模块的pom文件核心代码:

    <properties>
        <spring.version>4.0.2.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.zy</groupId>
            <artifactId>ssm_biz</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--支持servlet的jar包-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!--支持JSTL标签库的包-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!--使用spring mvc时必要的jar包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--使用spring mvc时必要的jar包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>ssm_web</finalName>
    </build>

把jar包放入lib中


b

1.6.创建相关的文件夹目录以及配置文件

dao模块的java下创建目录

  • com.dao 存放dao接口
  • com.entity 存放实体类
  • com.global 存放全局数据

dao模块的resources下创建目录

  • mapper 存放与数据库映射的mapper.xml文件,里面的mapper要替换成与dao下面的接口类名一直的名称

dao模块的resources下创建spring-dao.xml文件,用于配置dao层的类扫描目录,数据库以及mybatis

image.png

biz模块的java下创建目录

  • com.biz 存放业务接口
  • com.biz.impl 存放业务接口的实现类

biz模块的resources下创建文件spring-biz.xml文件,用于配置业务层的的类扫描目录,事务管理以及aop配置

image.png

web模块的java下创建目录

  • com.controller 存放springMVC的controller类
  • com.dto 存放数据传输对象
  • com.global 用于存放过滤器拦截器等

web模块的resources目录下创建spring-web.xml用于配置web层的类扫描目录,页面的统一路径,模板,跳转的前缀,后缀名,拦截器等.

web模块的webapp下放入通用的js,css,html/jsp等.

在这我们在webapp下创建:

  • js
  • css
  • html
  • jsp

web模块目录结构如下

image.png

1.7.完善框架内容.

数据库中创建一个简单的库和表,用于项目的完整搭建.

使用建表语句在MySql中创建简单的表,并且加入数据:

-- ----------------------------
-- Table structure for person
-- ----------------------------
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of person
-- ----------------------------
BEGIN;
INSERT INTO `person` VALUES ('张三', 22);
INSERT INTO `person` VALUES ('Tom', 30);
COMMIT;

1.7.1.配置dao模块

配置spring-dao.xml文件:

<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"
       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">

    <!--dao扫描路径-->
    <context:component-scan base-package="com.dao"/>

    <!--数据库配置-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/testssm?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="111111"/>
    </bean>

    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--实体类路径-->
        <property name="typeAliasesPackage" value="com.entity"/>
        <!--Mapper文件的路径-->
        <property name="mapperLocations" value="classpath:mapper/*.xml" />
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
        <!--dao文件路径-->
        <property name="basePackage" value="com.dao"/>
    </bean>

</beans>

在entity包下创建Person实体类:

package com.entity;

public class Person {
    
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}


在dao包下创建PersonDao接口:

package com.dao;

import com.entity.Person;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository("personDao")
public interface PersonDao {
    List<Person> selectAll();

}

在mapper下创建文件PersonDao.xml文件(注意这里的xml文件名,务必要与dao中的dao接口名一致):

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.PersonDao">

    <resultMap id="person" type="Person">
        <result property="name" column="name" javaType="String"/>
        <result property="age" column="age" javaType="Integer"/>
    </resultMap>

    <select id="selectAll" resultMap="person">
        select * from person
    </select>

</mapper>

至此dao层配置完毕

image.png

1.7.2.配置biz模块

配置spring-biz.xml文件:

<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"
       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">

    <!--导入dao的配置文件-->
    <import resource="spring-dao.xml"/>
    <!--添加biz类的扫描包-->
    <context:component-scan base-package="com.biz"/>

</beans>

com.biz包下创建PersonBiz接口:

package com.biz;

import com.entity.Person;

import java.util.List;

public interface PersonBiz {
    List<Person> getAll();
}

com.biz包下创建PersonBizImpl类实现PersonBiz接口:

package com.biz.impl;

import com.biz.PersonBiz;
import com.dao.PersonDao;
import com.entity.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("personBiz")
public class PersonBizImpl implements PersonBiz{
    @Autowired
    private PersonDao personDao;

    public List<Person> getAll() {
        return personDao.selectAll();
    }

}

至此biz层配置完毕:

image.png

1.7.3.配置web模块

com.global下创建EncodingFilter类

package com.global;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class EncodingFilter implements Filter {
    private String encoding = "utf-8";
    public void init(FilterConfig filterConfig) throws ServletException {
        if(filterConfig.getInitParameter("encoding")!=null){
            encoding = filterConfig.getInitParameter("encoding");
        }
    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)servletRequest;
        HttpServletResponse response = (HttpServletResponse)servletResponse;
        request.setCharacterEncoding(encoding);
        response.setCharacterEncoding(encoding);
        filterChain.doFilter(request,response);
    }

    public void destroy() {
    }
}

com.controller下创建PersonController:

package com.controller;

import com.biz.PersonBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller("personController")
@RequestMapping("/person")
public class PersonController {
    @Autowired
    private PersonBiz personBiz;
    @RequestMapping("/list")
    public String list(Map<String,Object> map){
        map.put("list",personBiz.getAll());
        System.out.println("personBiz.getAll() = [" + personBiz.getAll() + "]");
        return "person_list";
    }
}


配置spring-web.xml:

<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"
       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">

    <import resource="spring-biz.xml"/>

    <context:component-scan base-package="com.controller"/>
    <mvc:annotation-driven/>

    <mvc:default-servlet-handler/>

    <!--设置SpringMVC返回的路径对应的文件目录,前缀和后缀-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

配置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">


    <!--配置中文编码filter-->
    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>com.global.EncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--系统的servlet Mapping路径-->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/assets/*</url-pattern>
        <url-pattern>/js/*</url-pattern>
        <url-pattern>/vendor/*</url-pattern>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.jpg</url-pattern>
        <url-pattern>*.gif</url-pattern>
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    <!--配置SpringMVC的DispatcherServlet-->
    <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-web.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

WEB-INF/pages下创建person_list.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>PersonList</title>
</head>
<body>

<table border="1">
    <thead>
    <tr>
        <th>人名</th>
        <th>年龄</th>
    </tr>
    </thead>
    <tbody>
    <c:forEach items="${list}" var="person">
        <tr>
            <td>${person.name}</td>
            <td>${person.age}</td>
        </tr>
    </c:forEach>
    </tbody>
</table>

</body>
</html>

  • 工程下载地址:

https://github.com/DeveloperZhang/SpringMVCDemo

2.总结

以上就是SSM的基础配置,包含了链接MySql数据库的操作.

相关文章

网友评论

      本文标题:Java-SSM-项目搭建

      本文链接:https://www.haomeiwen.com/subject/guavrltx.html