用idea搭建SSM框架maven项目

打开idea,点击New - Project

用idea搭建SSM框架maven项目_第1张图片

找到Maven一栏,因为要搭建的SpringMvc项目,所以选择webapp模板

用idea搭建SSM框架maven项目_第2张图片

填写好GroupId和ArtifactId后,一步步next,最后finish完成

用idea搭建SSM框架maven项目_第3张图片

创建成功后,可以看到项目是这样的目录结构

用idea搭建SSM框架maven项目_第4张图片

除了配置相关依赖的pom.xml,目录中还有一个文件夹src,src的main目录提供了一个webapp文件夹,webapp文件夹下有一个WEB-INF文件夹,放置的是前端页面的文件,以及web.xml文件。

除了模版提供的目录结构,为了后面项目能成功运行,我们还需要添加一些文件夹,让项目的目录结构变成这样:

用idea搭建SSM框架maven项目_第5张图片

数据库文件

首先,先准备好数据库文件,并初始化一条记录

复制代码

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `email` varchar(255) NOT NULL COMMENT '用户邮箱',
  `username` varchar(255) NOT NULL COMMENT '用户昵称',
  `role` varchar(255) NOT NULL COMMENT '用户身份',
  `mobile` varchar(50) DEFAULT '' COMMENT '手机号码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf-8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '[email protected]', 'xjt', 'root', '15678635432');

复制代码

配置文件

pom.xml

复制代码



  4.0.0

  com.xjt
  mvcDemo
  1.0-SNAPSHOT
  war

  mvcDemo Maven Webapp

  
  
    4.0.2.RELEASE
    3.2.8
    1.7.12
    1.2.17
    1.0.9
  
  
  
    
    
      junit
      junit
      4.11
      
      test
    

    
    
      org.springframework
      spring-test
      ${srping.version}
    
    
      org.springframework
      spring-core
      ${srping.version}
    
    
      org.springframework
      spring-oxm
      ${srping.version}
    
    
      org.springframework
      spring-tx
      ${srping.version}
    
    
      org.springframework
      spring-jdbc
      ${srping.version}
    
    
      org.springframework
      spring-aop
      ${srping.version}
    
    
      org.springframework
      spring-context
      ${srping.version}
    
    
      org.springframework
      spring-context-support
      ${srping.version}
    
    
      org.springframework
      spring-expression
      ${srping.version}
    
    
      org.springframework
      spring-orm
      ${srping.version}
    
    
      org.springframework
      spring-web
      ${srping.version}
    
    
      org.springframework
      spring-webmvc
      ${srping.version}
    
    
    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    
    
      org.mybatis
      mybatis-spring
      1.2.2
    
    
    
    
      mysql
      mysql-connector-java
      5.1.35
    
    
    
      commons-dbcp
      commons-dbcp
      1.4
    
    
    
      jstl
      jstl
      1.2
    
    
    
      log4j
      log4j
      ${log4j.version}
    
    
      org.slf4j
      slf4j-api
      ${slf4j.version}
    
    
      org.slf4j
      slf4j-log4j12
      ${slf4j.version}
    
    
    
      com.alibaba
      druid
      ${druid.version}
    
  

  
    mvcDemo

    
    
      
        org.apache.maven.plugins
        maven-compiler-plugin
        3.2
        
          1.8
          1.8
          UTF-8
        
      

      
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.2
        
          8080
          /${build.finalName}
          UTF-8
          tomcat7
        
      


    
  

复制代码

注:以下四个配置文件都是放置在resources文件夹下

log4j.properties

复制代码

#日志输出级别
log4j.rootLogger=debug,stdout,D,E

#设置stdout的日志输出控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#输出日志到控制台的方式,默认为System.out
log4j.appender.stdout.Target = System.out
#设置使用灵活布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} -[%p]  method:[%c (%rms)] - %m%n

复制代码

延伸知识

idea+maven配置log4j详解    我在搭建log4j日志时特意看啦下  可略过

第一步,在pom.xml中加入相关依赖:

复制代码

        
        
            log4j
            log4j
            1.2.17
        
        
        
            org.slf4j
            slf4j-api
            1.7.25
        
        
        
            org.slf4j
            slf4j-log4j12
            1.7.25
            test
        

复制代码

第二步,在项目的 src/test/resource目录下新建log4j.properties文件,文件内容为:

复制代码

### set log levels ###
log4j.rootLogger = debug,stdout,R 

### console appender###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = Info
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d [%t] %p [%c] - %m%n

### output to files ###
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = logs/log.txt
log4j.appender.R.Append = true
log4j.appender.R.Threshold = Info 
log4j.appender.R.layout = org.apache.log4j.PatternLayout
#log4j.appender.R.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p]%m%n
log4j.appender.R.layout.ConversionPattern = %d [%t] %p [%c] - %m%n

复制代码

第三步,编写测试代码

复制代码

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Log4jTest {
    public static void main(String[] args) {
        Logger LOG = LoggerFactory.getLogger(Log4jTest.class);
        LOG.info("开始记录日志...");
        LOG.info("循环打印0到10之间的整数");
        for(int i=0;i<10;i++) {
            System.out.println(i);
        }
        LOG.info("结束日志!");
    }
}

复制代码

以上关于log4j解说,请往下 看

jdbc.properties

复制代码

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mvcDemo?characterEncoding=utf8&useSSL=false
#数据库的用户名
username=root
#数据库的密码
password=123456
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

复制代码

applicationContext.xml

这是Spring的核心配置文件,包括Spring结合Mybatis和数据源的配置信息

复制代码



    
    
        
    

    
    
        
        
        
        
    

    
    
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
    

复制代码

spring-mvc.xml

复制代码



    
    

    
    

    
    

    
    
        
        
        
    

复制代码

web.xml

该文件不是放在resources,而是webapp的WEB-INF文件夹下,文件内容如下:

复制代码



  mvcDemo
  
  
    index.jsp
  

  
  
    org.springframework.web.context.ContextLoaderListener
  

  
  
    contextConfigLocation
    classpath:applicationContext.xml
  

  
  
    CharacterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      utf-8
    

    
      forceEncoding
      true
    
  
  
    CharacterEncodingFilter
    /*
  

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

  
    springmvc
    /
  

复制代码

index.jsp文件

  

Hello World!

  

实体类:User.java

复制代码

package com.xjt.model;

public class User {
    private long id;
    private String email;
    private String mobile;
    private String username;
    private String role;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getUsername() {
        return username;
    }

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

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }
}

复制代码

dao文件:IUserDao

复制代码

package com.xjt.dao;

import com.xjt.model.User;

public interface IUserDao {

    User selectUser(long id);
}

复制代码

mapper文件:UserDao.xml

位于resources - mapper文件夹下

复制代码






    

复制代码

service接口:IUserService

复制代码

package com.xjt.service;

import com.xjt.model.User;

public interface IUserService {

    public User selectUser(long userId);
}

复制代码

UserServiceImpl

复制代码

package com.xjt.service.impl;

import com.xjt.dao.IUserDao;
import com.xjt.model.User;
import com.xjt.service.IUserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service("userService")
public class UserServiceImpl implements IUserService {

    @Resource
    private IUserDao userDao;

    public User selectUser(long userId) {
        return userDao.selectUser(userId);
    }
}

复制代码

controller文件:UserController

复制代码

package com.xjt.controller;

import com.xjt.model.User;
import com.xjt.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping("/select")
    public ModelAndView selectUser() throws Exception {
        ModelAndView mv = new ModelAndView();
        User user = userService.selectUser(1);
        mv.addObject("user", user);
        mv.setViewName("user");
        return mv;
    }
}

复制代码

UserController定义了一个方法selectUser,读取id为1的User信息,并返回user.jsp页面,访问的路径是/user/select,user.jsp位于 WEB-INF 的 jsp 文件夹下,代码如下:

复制代码

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


    user


    id:${requestScope.user.id}
email:${requestScope.user.email}
username:${requestScope.user.username}
role:${requestScope.user.role}
mobile:${requestScope.user.mobile}

复制代码

在浏览器输入http://localhost:8080,返回结果如下:
用idea搭建SSM框架maven项目_第6张图片

 

在浏览器输入http://localhost:8080/user/select

用idea搭建SSM框架maven项目_第7张图片

页面成功的返回了User信息,说明,我们成功访问到了数据库的内容。

中途遇到的错误

Tomcat启动Exception invoking method manageApp

 

LXWSEM


org.apache.tomcat.maven
tomcat7-maven-plugin
2.2

8080
/${build.finalName}
UTF-8
tomcat7

 

java.sql.SQLException: Access denied for user 'root     '@'localhost' (using password: YES)

 

url=jdbc:mysql://localhost:3306/mvcDemo?characterEncoding=utf8&useSSL=false

 

数据库是mvcDemo

启动内置tomcat

用idea搭建SSM框架maven项目_第8张图片

用idea搭建SSM框架maven项目_第9张图片

jar包35个

你可能感兴趣的:(用idea搭建SSM框架maven项目)