播报:idea搭建SSM框架遇踩的坑(附完整过程)

首先说明这是我一个不熟悉idea和SSM框架的新手小白遇到的坑,适合用idea搭建SSM框架的小伙伴看一看,老鸟就不用看了。以下为详细步骤(傻瓜教程,超级细节)

搭建SSM框架的前提当然是我们已经准备好一下环境

安装好的intellige idea, java环境,tomcat服务器,maven仓库,mysql数据库。


【资料图】

打开idea,new一个project,选择maven项目,如图,注意不要选错成上面那个webapp

点击next继续,

groupid一般是公司名,Artfactid一般为项目名,对于idea的项目目录结构,我自己也没弄明白,不过这并不影响我们的目标

点击next继续,

这里我们使用自己的本地maven仓库,注意setting.xml,repository路径的修改。next继续,然后finish。

第一次建web maven项目可能需要的时间比较长,耐心等待Maven execution finished。最后的项目结构如下图

我们需要在main包下面新建一个java根目录

然后将java目录改成资源根目录。

然后再java目录下创建package com.ssm 如图

再在com.ssm下创建一个a.txt文件来分隔路径

然后在com.ssm 下创建一下6个package,然后删除a.txt,最后如下

修改pom.xml的内容如下


  4.0.0
  自己项目的groupId
  自己项目对应
  war
  1.0-SNAPSHOT
  同上对应 Maven Webapp
  http://maven.apache.org
  
    
    4.0.2.RELEASE
    
    3.2.6
    
    1.7.7
    1.2.17
  
  
    
      junit
      junit
      4.11
      
      test
    
    
    
      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
    
    
    
      javax
      javaee-api
      7.0
    
    
    
      mysql
      mysql-connector-java
      5.1.30
    
    
    
      commons-dbcp
      commons-dbcp
      1.2.2
    
    
    
      jstl
      jstl
      1.2
    
    
    
    
      log4j
      log4j
      ${log4j.version}
    


    
    
      com.alibaba
      fastjson
      1.1.41
    


    
      org.slf4j
      slf4j-api
      ${slf4j.version}
    

    
      org.slf4j
      slf4j-log4j12
      ${slf4j.version}
    
    
    
    
      org.codehaus.jackson
      jackson-mapper-asl
      1.9.13
    
    
    
      commons-fileupload
      commons-fileupload
      1.3.1
    
    
      commons-io
      commons-io
      2.4
    
    
      commons-codec
      commons-codec
      1.9
    

    
      org.springframework
      spring-messaging
      4.0.5.RELEASE
    
    
      org.springframework
      spring-websocket
      4.0.5.RELEASE
    
    
      com.google.code.gson
      gson
      2.3.1
    

  


    ProjectMatch
    
      
        ${basedir}/src/main/java
        
          **/*.xml
        
      
    
  

然后在resources目录下新建如下4个文件如图

jdbc.properties 内容如下,标红的地方都需要按自己数据库修改,test为数据库名

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
username=root
password=123456
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

log4j.properties内容如下,可完全复制

#定义LOG输出级别
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

spring-mvc.xml内容如下 ,红色标记需要自己对应修改



    
    
    
    
        
            
                text/html;charset=UTF-8
            
        
    

    

    
    
        
            
                 
            
        
    



    
    
        
        
        
    

    
    
        
        
        
        
        
        
    

    
    
    
    
    
    

spring-mybatis.xml内容如下 同上



    
    
    
    
        
    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
    

    
    
        
    

然后项目的web.xml也要对应修改 如下,红色标记同上




  Archetype Created Web Application
  
  
    contextConfigLocation
    classpath:spring-mybatis.xml
  

  
  
    log4jRefreshInterval
    60000
  
  
    org.springframework.web.util.Log4jConfigListener
  

  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  

  
    encodingFilter
    /*
  

  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
    org.springframework.web.util.IntrospectorCleanupListener
  

  
  
    mvc-dispatcher
    org.springframework.web.servlet.DispatcherServlet
    
    
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
    true
  


  
  
    mvc-dispatcher
    
    /
  
  

  
  
    15
  

然后我们就可以编写测试了。

在数据库中创建user表,有两条记录,如图

在pojo包中创建user类

package com.qihang.pojo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

@Entity
@Table(name = "user")
public class user {

    @Column(name = "username")
    String username;

    @Column(name = "password")
    String password;

    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;
    }
}

在dao包中创建userDao接口

package com.qihang.dao;

import com.qihang.pojo.user;

public interface userDao {
    public user selectByUserId(String username);

    public int insertUser(user user);
}

在mapper包中创建userMapping.xml




    
        
        
    

    
        #{username},#{password}
    

    

    
        INSERT  INTO user
        VALUE()
    

在services包中创建userService接口

package com.qihang.services;

import com.qihang.pojo.user;

public interface userService {
    public user querybyUsername(String username);

    public int insert(user user);
}

在servicesImp中创建userServiceImp类

package com.qihang.servicesImp;

import com.qihang.pojo.user;
import com.qihang.services.userService;
import com.qihang.dao.userDao;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

@Service("userServiceImp")
public class userServiceImp implements userService {

    @Autowired
    private userDao userDao;
    public int insert(user user) {
        return userDao.insertUser(user);
    }

    public user querybyUsername(String username) {
        return userDao.selectByUserId(username);
    }
}

在WEB-INF下创建page包,然后在page包中创建test.jsp文件 如图

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


用户名

${user.username}

密码

${user.password}

然后在controller包下创建userController类

package com.qihang.controller;

import com.qihang.pojo.user;
import com.qihang.services.userService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class UserController {
    @Autowired
    private userService userService;

    @RequestMapping("/query")
    public String query(@RequestParam(value = "username",required = true) String username, Model model){
        user user = new user();
        user = userService.querybyUsername(username);
        model.addAttribute("user",user);
        return "test";

做到这里就把测试domo写完了,下一步将项目部署到服务器。

如图点击配置

点击 +

将本地tomcat配置好,按如图deployment

配置好就完成了。点击运行,在浏览器上输入

http://localhost:8080/query?username=lisi

看到如下就说明我们配置ok了

谢谢你们,看到这里也是幸苦了,如果还没有成功的再认真看看还有哪里是不是遗漏了,也可以在楼下留言,千万别灰心,程序员工作就是与bug作斗争的过程,也是在这些坑中慢慢学习的。

对于新手小白,经常会花很多时间在这些框架的搭建上或是一些工具的配置,而且由于不熟悉,会踩很多坑,花大量时间在这上面确实很不值得的。写这篇博客也是为大家能在学习的路上能更顺利些,当然也是给自己的踩坑路做个记录吧

总结

到此这篇关于idea搭建SSM框架遇踩的坑的文章就介绍到这了,更多相关idea搭建SSM框架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

标签:

最近更新

播报:idea搭建SSM框架遇踩的坑(附完整过程)
2023-04-03 10:08:16
广东4岁女童反复高烧,父母这一行为致其住进ICU!医生紧急提醒→-每日快看
2023-04-03 09:23:45
全球快讯:贾格林连续两战DNP!科尔:目前他不在轮换中 但并不会一直如此
2023-04-01 13:01:14
探索进化与革新 盘点迈凯伦传奇车型 天天微速讯
2023-04-01 11:47:21
黄河保护法今日起实施!我省黄河流域生态司法保护干得咋样,通报来了
2023-04-01 10:08:59
全球微资讯!书香沁润阵地 共读共创文明兰州
2023-04-01 09:13:19
天天热头条丨雄安六岁了! “未来之城”拔节生长
2023-04-01 07:13:32
同道猎聘2022年财报:全年营收26亿,企业用户数同比增长12.6%
2023-04-01 05:56:53
情书
2023-04-01 01:50:43
世界热议:方寸阵地 枝叶关情——山东潍坊仓南街社区服务群众见闻
2023-03-31 22:43:54
小区道路破损、“僵尸车”……TA们有何妙招化难题? 世界热点
2023-03-31 21:42:58
《2023中国网络视听发展研究报告》发布 新技术应用场景备受关注_新动态
2023-03-31 20:35:04
2023宁波7月学考报考指南(报名+考试)
2023-03-31 19:11:44
交通事故死亡驾照要吊销吗(交通事故死亡驾照是否吊销)
2023-03-31 18:09:50
泛海控股:目前剩余未偿还债务金额为2.72亿元 天天即时
2023-03-31 17:47:01
打新必看|4月3日两只新股上市,会破发吗? 世界今热点
2023-03-31 16:59:44
全球热议:外交部介绍日本外相林芳正访华安排
2023-03-31 16:11:40
焦点关注:中科磁业(301141.SZ):将于4月3日在创业板上市
2023-03-31 15:01:48
PC版《最后生还者RE》BUG太多:艾莉的脸糊成一团
2023-03-31 14:12:00
荆门市社保缴费标准查询 2023年荆门市社保缴费档次最低多少钱
2023-03-31 13:15:01
“一喜”演员组团闯荡电影圈,范丞丞携手蒋龙要干一票大的? 微动态
2023-03-31 11:58:27
你知道纸性恋是什么意思吗?纸片人又是什么意思呢? 热消息
2023-03-31 11:32:07
当前最新:津蓟高速宝坻收费站 3月29日起至4月26日智慧化升级改造
2023-03-31 11:02:02
陕西定边县开展健康教育、急救知识进校园宣讲活动 全球微动态
2023-03-31 10:07:10
未来电器:保持专注 成为低压电器的未来 世界观速讯
2023-03-31 09:07:48
中证协明确并细化券商从事经纪业务职责 第三方载体不得介入证券业务的任一环节
2023-03-31 07:49:54
斯特里尼谈接手热刺:我感到非常荣幸,是时候一起承担责任了
2023-03-31 06:08:29
大地熊:2022年营收增长28% 募集资金项目陆续投产
2023-03-31 04:56:53
环球简讯:日赚1.72亿!茅台去年净利627亿元,拟分红逾325亿,Q4营收同比增17.1% | 财报见闻
2023-03-31 00:01:38
环球快看:京东集团拟分拆京东工业于香港联交所主板独立上市
2023-03-30 21:55:38