使用eclipse+maven搭建ssm框架

事先准备好系统环境

  • Window 10
  • JDK1.8
  • Eclipse Java EE IDE for Web Developers(Version: Neon Release (4.6.0))
  • Tomcat8.5
  • Maven3.6
    关于环境配置请参考我的其他文章
    JavaEE开发环境搭建(基于Eclipse)https://www.jianshu.com/p/1b1a5a5c12f2
    如何使用Eclipse创建Maven工程https://www.jianshu.com/p/9c70cf23c9e4

使用maven创建SSM框架

  1. 选择Maven Project


    使用eclipse+maven搭建ssm框架_第1张图片
  2. 选择默认工作空间位置


    使用eclipse+maven搭建ssm框架_第2张图片
  3. 选择web类型


    使用eclipse+maven搭建ssm框架_第3张图片
  4. 填写GroupID、ArtifactID
    Group ID:相当于一个组织
    Artifact ID:相当于这个组织下的一个具体项目
    Packege:根据Group ID和Artifact ID生成一个默认的名称


    使用eclipse+maven搭建ssm框架_第4张图片
  5. 创建出的maven项目如下图


    使用eclipse+maven搭建ssm框架_第5张图片

    提示错误:


    使用eclipse+maven搭建ssm框架_第6张图片

    解决办法:在eclipse中设置Server为Tomcat,注意JRE设置为安装的JDK的jre
    使用eclipse+maven搭建ssm框架_第7张图片

    在工程上右键,查看工程属性,找到Java Build Path,添加Server Runtime为Tomcat


    使用eclipse+maven搭建ssm框架_第8张图片

    使用eclipse+maven搭建ssm框架_第9张图片

    点击Finish后,项目工程变成下图
    使用eclipse+maven搭建ssm框架_第10张图片
  6. 在项目上点击右键,查看项目信息

    使用eclipse+maven搭建ssm框架_第11张图片

    默认的Dynamic Web Module为2.3,使用Tomcat 8.5,需要修改为3.1
    修改方法:
    ① maven工程所在目录有个.settings文件夹(默认隐藏)下面有个文件org.eclipse.wst.common.project.facet.core.xml
    使用eclipse+maven搭建ssm框架_第12张图片

    将内容改为:



  
  
  
  

② maven工程下的web.xml文件修改为




③ pom.xml文件中修改build节点,添加如下内容


       
              org.apache.maven.plugins
              maven-compiler-plugin
              
                     1.8
                     1.8
              
       

④ 修改后,在项目上右键,找到Maven属性下的Update Project,点击之


使用eclipse+maven搭建ssm框架_第13张图片

⑤ 选择该项目进行更新,如果怕不能强制更新,可以勾选Force Update of Snapshots/Releases
⑥ 点击OK后更新maven项目,再观察项目属性,Module已经变为3.1

下载ssm框架所需的jar包

修改pom.xml内容为


    4.0.0
    com.huyonghua
    ssm
    war
    0.0.1-SNAPSHOT
    ssm Maven Webapp
    http://maven.apache.org
    
        
        4.3.8.RELEASE
    
    
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.3.1
            provided
        

        
        
            javax.servlet
            jstl
            1.2
        

        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        

        
        
            org.aspectj
            aspectjrt
            1.8.0
        
        
            org.aspectj
            aspectjweaver
            1.8.0
        

        
        
            org.mybatis
            mybatis
            3.3.0
        
        
        
            mysql
            mysql-connector-java
            5.1.26
        
        
        
            com.alibaba
            druid
            1.0.20
        

        
        
            org.mybatis
            mybatis-spring
            1.2.3
        

        
        
            log4j
            log4j
            1.2.17
        
        
            org.slf4j
            slf4j-api
            1.7.21
        

        
        
            junit
            junit
            3.8.1
            test
        
    
    
        ssm
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                
            
        
    

保存后,可以看到相关jar包被下载至本地仓库

完善项目结构

因为服务端maven项目的标准结构有四个子包:src/main/java、src/main/resources、src/test/java、src/test/resources,这里缺少了src/test/resources,所以手动补上。
在项目中新建Source Folder


使用eclipse+maven搭建ssm框架_第14张图片

创建src/test/resoures目录后,工程如下图所示


使用eclipse+maven搭建ssm框架_第15张图片

右键查看项目属性,点击Deployment Assembly,移除test和target

Web Deployment Assembly是eclipse中的发布路径设置,DeployPath表示每个资源发布之后的文件路径。eclipse中使用tomcat使用启动web项目的流程是 java build path编译项目源代码生成的class文件放到buildpath的设置路径中,根据web deployment assembly将项目中的各个资源发布到设置的指定文件中

使用eclipse+maven搭建ssm框架_第16张图片

框架测试

  1. 创建项目中用的配置文件


    使用eclipse+maven搭建ssm框架_第17张图片

log4j.properties

#USE THIS SETTING FOR OUTPUT MYBATIS`s SQL ON THE CONSOLE
log4j.rootLogger=DEBUG, Console

#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.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

srping-core.xml




    
    

    
    
        
    
    
    
    
        
            
            
            
            
        
    
    
    
    
        
        
    

        
    
    
        
    

spring-mvc.xml




    
    

    
    

    
    

    
    
        
        
    

spring-mybatis.xml




    
    
    
        
        
        
    

    
    
        
        
           
             
        
    
    
    
    
        
        
    

mybatis-config.xml




    
    
        
    


配置web.xml启用spring容器



  
    index.jsp
  
  
    
    
        contextConfigLocation
        classpath:spring-core.xml
    
    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        true
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        /*
    
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
    
        springMVC
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
        true
    
    
        springMVC
        *.do
    

  1. 数据库插入测试数据
    创建一个test数据库,并建一个userinfo的表,表结构如下


    使用eclipse+maven搭建ssm框架_第18张图片

    插入测试数据


    使用eclipse+maven搭建ssm框架_第19张图片
  2. 编写服务端代码


    使用eclipse+maven搭建ssm框架_第20张图片

    User.java

package com.huyonghua.domain;

/**
 * 用户信息
 */
public class User {
    // 成员变量
    private Integer userid;
    private String username;
    private String password;

    // 构造函数
    public User() {
        super();
    }

    public User(Integer userid, String username, String password) {
        super();
        this.userid = userid;
        this.username = username;
        this.password = password;
    }

    // 成员方法
    public Integer getUserid() {
        return userid;
    }

    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

UserDao.java

package com.huyonghua.dao;

import com.huyonghua.domain.User;

public interface UserDao {
    public User findByUsername(String username);
}

UserMapper.xml




    

UserService.java

package com.huyonghua.service;

import com.huyonghua.domain.User;

public interface UserService {
    public User findUserByName(String name);
}

UserServiceImpl.java

package com.huyonghua.service.impl;

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

import com.huyonghua.dao.UserDao;
import com.huyonghua.domain.User;
import com.huyonghua.service.UserService;

@Service
@Transactional
public class UserServiceImpl implements UserService{

    @Autowired
    private UserDao userDao;
    @Override
    public User findUserByName(String name) {
        // TODO Auto-generated method stub
        return this.userDao.findByUsername(name);
    }
}

UserController.java

package com.huyonghua.web;


import javax.servlet.http.HttpSession;

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

import com.huyonghua.domain.User;
import com.huyonghua.service.UserService;

/**
 * 用户控制器
 */
@Controller
@RequestMapping(value = "/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public ModelAndView login(User model, HttpSession session) {
        User user = userService.findUserByName(model.getUsername());

        if (user == null || !user.getPassword().equals(model.getPassword())) {
            return new ModelAndView("redirect:/login.jsp");
        } else {
            session.setAttribute("user", user);
            ModelAndView mav = new ModelAndView();
            mav.setViewName("index");
            return mav;
        }
    }
}
  1. 编写客户端代码


    使用eclipse+maven搭建ssm框架_第21张图片

    login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>




登录




index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>




主页


欢迎,${user.username }

  1. 发布项目到tomcat
    右键项目-->run as-->run on server


    使用eclipse+maven搭建ssm框架_第22张图片

本文源码已发布到我的github仓库,欢迎大家Fork and Star!

[email protected]:goldfather008/ssm.git

问题

tomcat运行报错。The Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config is missing. Check the server for errors.
原因:可能不小心删除了Project Explorer下的Server
解决办法:Window-Preferences-Server-Server Runtime Environments重新关联就可以了

查询数据库时发现报错Invalid bound statement (not found)
原因:mybaits的配置文件与接口调用没有对应,一般情况是Mapepr.xml文件中nameapce没有和mapper接口发生映射,导致mybatis绑定失败,检查是否正确配置映射

tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误。同时其他项目页面也不能访问。
关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问http://localhost:8080/能正常访问tomcat管理页面。
原因:eclipse将tomcat的项目发布目录(tomcat 目录中的webapp)重定向了,所以你会发现在tomcat安装目录下的webapp目录里面找不到你的项目文件。
解决办法:重新配置下tomcat服务器:
在eclipse中的server页面,双击tomcat服务,会看到如图所示的配置页面:

使用eclipse+maven搭建ssm框架_第23张图片

可以看到红圈中选择的是 Use workspace metadata(does not modify Tomcat installion)
如果该tomcat中部署了项目的话,这红圈中的选项会灰掉不能修改,要修改必须得先把tomcat中的部署的服务都移除。


使用eclipse+maven搭建ssm框架_第24张图片

通过右键单击tomcat服务器选择 Add and Remove,在弹出的对话框中移除已部署的项目。移除完确定后,将看到上面的选项面板部分可编辑了。
选择Use tomcat installation(Task control of Tomcat installation) 即选择tomcat的安装目录来作为项目的发布目录。
然后,下来四行,看到"Deploy Path"了没?它后面的值默认是"wtpwebapps",把它改成"webapps",也就是tomcat
中发布项目所在的文件夹名字。
修改后关掉该页面,保存配置。这样就将项目部署到了tomcat安装目录下的webapp

你可能感兴趣的:(使用eclipse+maven搭建ssm框架)