1.描述
1.1.创建总工程
这里我们使用子模块的方式进行创建,首先创建一个新的项目ssm
File->New->Project
选择maven工程后,点击Next,输入相应的信息

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

1.2.创建dao层
后点击完成,点击右下角的:Enable Auto-Import

删除src目录:

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

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

后点击完成.
1.3.创建biz(业务)层
按照1.2的方式创建ssm_biz层.(只有模块命名时候不一样,命名为ssm_biz即可)
1.4.创建web层
ssm项目名称上右键->New->Module,选择Maven,并且勾选Creat from archetype
选择maven-archetype-webapp,主要不要选成cocoon-22那个.

命名ArtifactId为ssm_web,一直点击下一步直至完成.
在web模块下的src->main文件夹上右键创建java和resources文件夹

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

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


最后点击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中

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

biz模块的java下创建目录
- com.biz 存放业务接口
- com.biz.impl 存放业务接口的实现类
biz模块的resources下创建文件spring-biz.xml文件,用于配置业务层的的类扫描目录,事务管理以及aop配置

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模块目录结构如下

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&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层配置完毕

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层配置完毕:

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数据库的操作.
网友评论