Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)

Java技术 潘老师 4年前 (2020-07-26) 2637 ℃ (0) 扫码查看

在Java Web开发中,基于SSM架构的项目很多,因此掌握如何快速整合SSM的流程和框架需要做哪些准备配置,对于java的学习是至关重要的。在这里潘老师以图文教程的方式给大家详解下在Eclipse中具体的搭建步骤,如果你觉得此流程搭建太复杂,在文章最后潘老师会提供已经搭建好的项目供你下载。
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)

1、准备好JDK环境
2、准备好JavaEE版本的Eclispe环境
3、准备好mysql数据库(我这里是mysql5.5版本,如果你的是8.0版本注意驱动包和驱动都要改为与8.0版本对应的)
4、下载好Spring、SpringMVC和Mybatis的相关jar包以及一些辅助jar包。
4.1)下载Spring和SpringMVC的框架包,在这里我们使用的版本为4.3.18(可以根据自己的需要按照如图目录下载自己的需要的版本,如果你选的版本与我演示的不同,注意和mybatis版本兼容性问题)。官网下载地址:点击直达
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
4.2)下载mybati框架包,这里我们使用3.5.1版本,官网github下载地址:点击直达
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
4.3)准备其他辅助包,后面会具体说到。

1、在eclipse中新建名为ssm的java web项目。
2、将下面相关包复制到ssm的lib目录下:
2.1)IOC相关包

注意:commons-logging-1.2.jar和log4j-1.2.17.jar日志包自行百度下载,其他都在Spring框架包中查找

Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.2)AOP相关包

注意:aopalliance-1.0.jar和aspectweaver-1.8.10.jar日志包自行百度下载,其他都在Spring框架包中查找

Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.3)数据库及事务相关包
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.4)SpringMVC相关包
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.5)mybatis核心包
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.6)mysql数据库驱动包(如果是mysql8.0版本,驱动包可以使用mysql-connector-java-8.0.11.jar
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.7)c3p0数据库连接池包
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2.8)Spring和mybatis的整合包
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
SSM整合所需所有jar包综合如下:
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
3、为了方便后面扫描配置及环境测试,在src根目录下创建包目录如下:
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
4、在src下新建名为log4j.properties日志信息配置文件,内容如下:

log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#log4j.logger.org.apache=INFO

5、在src下新建名为jdbc.properties数据库信息配置文件,内容如下:

注意:数据库连接地址、用户名和密码都换成自己的
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

如果是mysql8.0版本,则配置为:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=123456

6、在src下新建名为spring.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:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
    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/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 配置包扫描 -->
    <context:component-scan base-package="com.ssm.service,com.ssm.dao"/>
    <!-- 配置注解驱动 -->
    <context:annotation-config/>
    <!-- 加载jdbc.properties -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 配置数据源-c3p0数据库连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
        <property name="minPoolSize" value="10"></property>
        <property name="maxPoolSize" value="50"></property>
        <property name="initialPoolSize" value="10"></property>
    </bean>
    
    <!-- 配置SqlSessionFactory-mybatis操作数据库核心对象的工厂 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据源 -->
        <property name="dataSource" ref="dataSource"></property>
        <!-- 注入mybatis的核心配置文件 -->
        <property name="configLocation" value="classpath:mybatis.cfg.xml"></property>
    </bean>
    
    <!-- 配置Mapper扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入扫描mapper的包路径 -->
        <property name="basePackage" value="com.ssm.dao"></property>
        <!-- 注入sqlSessionFactoryBeanName -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
    
    <!-- 配置事务-使用jdbc的事务 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!-- 开启spring对事务注解支持 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

6、在src下新建名为springmvc.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:aop="http://www.springframework.org/schema/aop"
    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
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    
    <!-- 开启包扫描注解:
        springmvc.xml中只对controller做扫描    
     -->
    <context:component-scan base-package="com.ssm.controller"/>
    <!-- springmvc注解驱动 -->
    <mvc:annotation-driven/>
    
    <!--
    配置视图解析的前缀 prefix 和后缀 suffix:
    (1)前缀:如果在 WebContent 目录下,则为 /,如果在 WEB-INF 目录下,则为 /WEB-INF/
    (2)后缀:一般为 JSP 文件,所以为 .jsp
 
    例如:prefix="/",suffix=".jsp",viewname="test",则:"/test.jsp"
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    
</beans>

7、在src下新建名为mybatis.cfg.xml的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
     <settings>
        <!-- 开启日志,并指定具体日志为log4j -->
        <setting name="logImpl" value="LOG4J"/>
        <!-- 开启延迟加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 设置属性按需加载 -->
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>
     
     <typeAliases>
           <!--自动扫描,将JAVA类的类名作为类的类别名 -->
        <package name="com.ssm.model"/>
     </typeAliases>
     
     <mappers>
           <!-- 自动扫描包内的Mapper接口与配置文件 -->
         <package name="com/ssm/dao"/>
     </mappers>
</configuration>

8、修改web.xml配置,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ssm</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 1.配置spring的监听器,项目一加载就创建容器 -->
  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 2.指定配置文件路径,如果不指定,就默认调用WEB-INF下的applicationContext.xml文件 -->
  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring.xml</param-value>
  </context-param>
  
  <!-- 3.配置spring的编码过滤器 -->
  <filter>
      <filter-name>characterEncoding</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>
  </filter>
  <filter-mapping>
      <filter-name>characterEncoding</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
  
   <!-- 4.配置 SpringMVC 的核心分发器-->
   <servlet>
       <servlet-name>springmvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <!-- 设置 SpringMVC 核心配置文件的名称和位置,均可任意。如果未设置,则默认
        位于 WEB-INF 目录下,名称为 [servlet-name]-servlet.xml -->
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:springmvc.xml</param-value>
       </init-param>
       <!-- 自动加载:随 Tomcat 容器启动,加载 DispatcherServlet,完成初始化 -->
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>springmvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
</web-app>

1、在mysql中新建ssm库,并创建user表。
Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
2、在model包中创建User.java实体类,代码如下:

package com.ssm.model;
public class User {
    private Integer id;
    private String name;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

3、controller包中新建UserController.java,代码如下:

package com.ssm.controller;

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

import com.ssm.model.User;
import com.ssm.service.UserService;
@Controller
public class UserController {
    @Autowired
    private UserService us;
    
    @RequestMapping("/saveUserPage")
    public String saveUserPage() {
        return "saveUser";
    }
    
    @RequestMapping("/saveUser")
    public String saveUser(User user) {
        us.saveUser(user);
        return "success";
    }
}

4、service包中新建UserService.java,代码如下:

package com.ssm.service;

import com.ssm.model.User;

public interface UserService {
    public void saveUser(User user);
}

5、service.impl包中新建UserServiceImpl.java,代码如下:

package com.ssm.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.ssm.dao.UserDao;
import com.ssm.model.User;
import com.ssm.service.UserService;
@Service("userService")
@Transactional(propagation=Propagation.REQUIRED,readOnly=false)
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public void saveUser(User user) {
        System.out.println("UserServiceImpl...saveUser...");
        userDao.saveUser(user);
        //int k = 1/0;//模拟异常,测试事务
    }
}

6、dao包中新建UserDao.java和UserDao.xml。
UserDao.java代码:

package com.ssm.dao;

import org.springframework.stereotype.Repository;

import com.ssm.model.User;
@Repository("userDao")
public interface UserDao {
    public void saveUser(User user);
}

UserDao.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="com.ssm.dao.UserDao">
     <!-- 保存 -->
     <insert id="saveUser" parameterType="user">
         insert into user (name) values (#{name})
     </insert>
     
</mapper>

7.在WEB-INF下新建views目录,在views下新建saveUser.jsp和success.jsp。
saveUser.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="saveUser" method="post">
        用户名:<input type="text" name="name" value=""/><br/>
        <input type="submit" value="添加"/>
    </form>
</body>

success.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
添加成功。。。。
</body>
</html>

8、部署运行项目,浏览器访问localhost:8080/ssm/saveUserPage跳转到添加用户页面,然后输入信息,点击添加,查看数据库是否正常添加,页面是否正常跳转至sucess.jsp。接着在UserServiceImpl中放开模拟异常代码,再次添加用户,查看数据库是否没有数据,如果没有表明事务机制正常。

下载好的源码直接解压导入到eclipse,如果报错,则检查buildpath的jdk是否匹配以及Apache Tomcat相关包是否有。

资源下载


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/447.html
喜欢 (7)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】