博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IntelliJ IDEA 搭建基于Maven 的SSM(一)(spring,springMvc,Mybatis)框架整合
阅读量:6092 次
发布时间:2019-06-20

本文共 15232 字,大约阅读时间需要 50 分钟。

hot3.png

一,搭建项目骨架

  使用Idea搭建基于Maven的单模块(即Dao,service,controller以及webapp均在一个父模块中)

1.File->New project创建基于Maven的web项目

163245_nQd5_3406827.png

2.填写基本的项目信息:

163405_5LLk_3406827.png

3.选择Maven所在的本地目录,以及配置文件setting.xml的位置

163602_tywt_3406827.png

ps:在maven的配置文件setting.xml文件中mirrors节点下配置阿里云的远程仓库镜像地址,可以让项目的目录结构生成以及jar包的下载速度变快.

alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central

4.项目信息填写

164230_z3XG_3406827.png

5.完成后 ,等待idea生成相应的目录结构

164518_rnaJ_3406827.png

由于该目录结构并不完整,在File->Project  Structure上补充完整的目录,同时将目录标记成相应的颜色

165616_qCC6_3406827.png    

二:配置文件

  1. pom.xm 
           

    基本上每个jar包都有注释(在这里笔者没有具体划分每个jar包的作用范围,导致有些jar包在整合简单的demo中其实并没有用到)
  2. 4.0.0
    com.chuyu.web
    web-ssm
    war
    1.0-SNAPSHOT
    web-ssm Maven Webapp
    http://maven.apache.org
    4.0.2.RELEASE
    3.2.6
    1.7.7
    1.2.17
    4.5
    5.1.29
    org.springframework
    spring-core
    ${spring.version}
    org.springframework
    spring-web
    ${spring.version}
    org.springframework
    spring-oxm
    ${spring.version}
    org.springframework
    spring-tx
    ${spring.version}
    org.springframework
    spring-jdbc
    ${spring.version}
    org.springframework
    spring-webmvc
    ${spring.version}
    org.springframework
    spring-aop
    ${spring.version}
    org.springframework
    spring-context-support
    ${spring.version}
    org.springframework
    spring-test
    ${spring.version}
    org.mybatis
    mybatis
    ${mybatis-version}
    org.mybatis
    mybatis-spring
    1.2.2
    mysql
    mysql-connector-java
    ${mysql-driver.version}
    com.alibaba
    druid
    1.0.18
    com.alibaba
    fastjson
    1.1.41
    log4j
    log4j
    ${log4j-version}
    org.slf4j
    slf4j-api
    ${slf4j-version}
    org.slf4j
    slf4j-log4j12
    ${slf4j-version}
    org.codehaus.jackson
    jackson-mapper-asl
    1.9.13
    com.fasterxml.jackson.core
    jackson-core
    2.8.0
    com.fasterxml.jackson.core
    jackson-databind
    2.8.0
    commons-fileupload
    commons-fileupload
    1.3.1
    commons-io
    commons-io
    2.4
    commons-codec
    commons-codec
    1.9
    junit
    junit
    ${Junit-version}
    test
    javax.servlet
    jstl
    1.2
    javax.servlet
    servlet-api
    2.5
    org.mybatis.generator
    mybatis-generator-maven-plugin
    1.3.2
    src/main/resources
    **/*.properties
    **/*.xml
    true
    src/main/java
    **/*.properties
    **/*.xml
    true
    web-ssm

     

  3. application.xml

    1.  

  4. jdbc.properties

    1. driverClasss=com.mysql.jdbc.DriverjdbcUrl=jdbc:mysql://localhost:3306/quick4j?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullusername=rootpassword=123456#定义初始连接数initialSize=0#定义最大连接数maxActive=20#定义最小空闲minIdle=1#定义最长等待时间maxWait=60000timeBetweenEvictionRunsMillis=28800

       

  5. log4j.properties

    1. log4j.rootLogger=INFO,Console,File#控制台日志log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.outlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n#普通文件日志log4j.appender.File=org.apache.log4j.RollingFileAppenderlog4j.appender.File.File=E:/IdeaProjects/web-ssm/src/main/logs/SSM.loglog4j.appender.File.MaxFileSize=10MB#输出日志,如果换成DEBUG表示输出DEBUG以上级别日志log4j.appender.File.Threshold=ALLlog4j.appender.File.layout=org.apache.log4j.PatternLayoutlog4j.appender.File.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n

       

  6. spring-mybatis.xml

    1. 到处spring整合mybatis的部分完成,如果为了测试是否整合成功,可以在src/main/test 包中新建测试类 ,验证是否连通数据库再整合springMvc.

    2. 测试类如下

      import com.alibaba.fastjson.JSON;import com.chuyu.ssm.model.User_Dao;import com.chuyu.ssm.service.inte.User_loginServices;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations ="classpath*:application.xml")public class TestUser_loginservice {    @Autowired    private User_loginServices user_loginServices;    @Test    public  void  test1(){       User_Dao user=user_loginServices.selectUser("admin", "123456");        System.out.println(JSON.toJSON(user));    }}

      这里采用的是Junit4.5的测试方法.其中的service部分的代码可以参考后面章节.

      PS:如果比较熟练可以省掉此处测试步骤
  7. spring-mvc.xml

  8. text/html;charset=UTF-8
    text/json;charset=UTF-8
    application/json;charset=UTF-8

    7.web.xm

    Archetype Created Web Application
    contextConfigLocation
    classpath*:application.xml
    log4jConfigLocation
    classpath:log4j.properties
    org.springframework.web.context.ContextLoaderListener
    org.springframework.web.util.IntrospectorCleanupListener
    org.springframework.web.util.Log4jConfigListener
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    encoding
    UTF-8
    encodingFilter
    /*
    DruidWebstateFilter
    com.alibaba.druid.support.http.WebStatFilter
    exclusions
    *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
    DruidWebstateFilter
    /*
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet
    contextConfigLocation
    classpath:spring-mvc.xml
    1
    SpringMVC
    *.action
    DruidStatView
    com.alibaba.druid.support.http.StatViewServlet
    resetEnable
    false
    loginUsername
    admin
    loginPassword
    123456
    DruidStatView
    /druid/*
    /index.jsp

     

三,测试代码的编写

        1.Dao层以及接口文件:

   利用mybatis的插件Mybatis-generaotr-plugin生成实体类,Dao文件以及*Mapper.xml

映射文件:(具体步骤见:)

181319_aIUW_3406827.png

        2.service层代码清单

@Servicepublic class User_loginServiceImpl implements User_loginServices {    @Autowired    private User_DaoMapper user_dao;    @Override    public User_Dao selectUser(String userName, String userPassword) {        User_DaoExample example=new User_DaoExample();        User_DaoExample.Criteria condition=example.createCriteria();        condition.andUsernameEqualTo(userName);        condition.andPasswordEqualTo(userPassword);        List
user_list=user_dao.selectByExample(example); if(!CollectionUtils.isEmpty(user_list)){ return user_list.get(0); } return null; }}

        3.Action层代码清单

    以简单的登录逻辑演示

@Controller@RequestMapping("/userLogin")public class UserLoginAction {    @Autowired    private User_loginServices user_loginServices;    @RequestMapping("/authentication")    public String userLogin(User_Dao paramDao){        User_Dao user=user_loginServices.selectUser(paramDao.getUsername(), paramDao.getPassword());        if (user!=null){            System.out.println(JSON.toJSON(user));            return "success";        }        return "fail";    }}

        4.前台页面

以简单的登录界面来演示整合的SSM,登录成功则跳转到成功页面,失败则跳转到失败页面

由于在配置文件中指定的前缀为/web-inf/jsp/ ,所有在web/info下新建jsp文件夹

102108_mcXA_3406827.png

index.jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%    String path = request.getContextPath();    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>    

登录界面!

         

其他登录成功和失败跳转的页面即在body里面添加内容以作区分即可.

    5:数据库    

    本例以Mysql为例,建立一个简单的表包含id,username,password 即可作为测试用

102521_IPCF_3406827.png

四:Tomcat的部署

   1.先打包成war包

104016_C7cW_3406827.png

对应Maven的各个生命周期,包括插件的知识详见:

(打包过程中可能会出现:

[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored 

(webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true') 

解决办法:

pom文件添加一下内容:

org.apache.maven.plugins
maven-war-plugin
2.1.1
WEB-INF/web.xml

)

  2.点击Edit Configurations

103136_YPpL_3406827.png

3.添加一个Tomcat服务器

103409_pLvj_3406827.png

4.配置服务器参数

103727_Jn0C_3406827.png

5.部署jar包,填写访问跟路径名

103620_Gp7A_3406827.png

6:运行部署

103136_YPpL_3406827.png

点击Tomcat7旁边的运行按钮启动项目,如果没有启动异常,打开浏览器访问http://localhost:8080/web-ssm

访问:

102602_tXId_3406827.png

092142_oEFY_3406827.png

至此,作为一个简单的整合SSM结束,后续也会在这个基础上作进一步的优化,包括数据的缓存,模块的划分(Maven 继承与聚合),分布式框架的集群搭建,以及Nginx的负载均衡等

转载于:https://my.oschina.net/u/3406827/blog/892491

你可能感兴趣的文章
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>