基于IDEA+Maven的SSM框架整合

项目运行效果:

基于IDEA+Maven的SSM框架整合_第1张图片

 

整体项目结构如下:

基于IDEA+Maven的SSM框架整合_第2张图片

 

 

步骤

1.新建一个Maven工程

打开IDEA-->File-->New-->Project-->选择Maven-->勾选Create from archetype-->选择maven-archetype-webapp-->Next

基于IDEA+Maven的SSM框架整合_第3张图片

填写GroupId(组织名称),和 ArtifactId(项目名)-->Next

基于IDEA+Maven的SSM框架整合_第4张图片

选择使用的Maven的安装目录及settings.xml文件-->Next

基于IDEA+Maven的SSM框架整合_第5张图片

确定项目名及项目路径-->点击Finish

基于IDEA+Maven的SSM框架整合_第6张图片

等待一会项目构建完成后,目录结构如下:

基于IDEA+Maven的SSM框架整合_第7张图片

 

2.新建目录结构,并设置目录属性

新建出如下目录结构:

基于IDEA+Maven的SSM框架整合_第8张图片

添加目录属性:

1)右键src/main/java-->Mark Directory as-->Sources Root。  此目录下写java代码

2)右键src/main/resources-->Mark Directory as-->Resources Root。  此目录下放资源配置文件

3)右键src/test/java-->Mark Directory as-->Test Sources Root。  此目录下写java测试代码

基于IDEA+Maven的SSM框架整合_第9张图片

 

3.在src/main/java目录下新建包

基于IDEA+Maven的SSM框架整合_第10张图片

1) 新建com.jipson.pojo包:实体类

基于IDEA+Maven的SSM框架整合_第11张图片

基于IDEA+Maven的SSM框架整合_第12张图片

2) 新建com.jipson.mapper包:  mapper接口

3) 新建com.jipson.service包: 业务接口

4) 新建 com.jipson.controller包: 控制类

 

4.在src/main/resources下新建目录、文件

基于IDEA+Maven的SSM框架整合_第13张图片

1)新建applicationContext.xml文件:配置spring、mybatis

基于IDEA+Maven的SSM框架整合_第14张图片

基于IDEA+Maven的SSM框架整合_第15张图片

2)新建springmvc.xml文件:配置springMVC

3)新建db.properties文件:数据库配置

4)新建log4j.properties文件:日志配置

5)新建mapper目录,右键sources-->New-->Directory-->mapper-->OK: 写Mapper接口的配置

 

5. 数据库设计

这里使用MySQL数据库

1)新建数据库:ssm

create DATABASE ssm;

2)新建数据表:user

CREATE TABLE user(
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(50) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO user VALUES(1,'小明');
INSERT INTO user VALUES(2,'小红');
INSERT INTO user VALUES(3,'小美');

 

6.配置pom.xml

配置spring、mybatis版本号

    
        UTF-8
        UTF-8
        1.7
        1.7
        
        4.3.5.RELEASE
        
        3.4.1
    

配置依赖

  
    
    
      junit
      junit
      4.12
      test
    
    
    
      mysql
      mysql-connector-java
      5.1.41
      runtime
    
    
    
      com.mchange
      c3p0
      0.9.5.2
    
    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    
    
    
      org.mybatis
      mybatis-spring
      1.3.1
    
    
    
      org.springframework
      spring-core
      ${spring.version}
    
    
      org.springframework
      spring-beans
      ${spring.version}
    
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-jdbc
      ${spring.version}
    
    
      org.springframework
      spring-tx
      ${spring.version}
    
    
      org.springframework
      spring-web
      ${spring.version}
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
      org.springframework
      spring-test
      ${spring.version}
    
    
    
      com.fasterxml.jackson.core
      jackson-core
      2.7.3
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.7.3
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      2.7.3
    
  

 

7.编写配置文件

1)web.xml



  
  
    contextConfigLocation
    classpath:applicationContext.xml
  
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:springmvc.xml
    
    1
  
  
    springmvc
    /
  
  
  
    encoding
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      utf-8
    
  
  
    encoding
    /*
  

 

2) applicationContext.xml



    
    

    
    
    
    
    
        
        
        
        
        
        
        
        
        
    
    
    
        
        
        
        
        
    
    
    
        
        
    
    
    
        
    
    
    
    
        
            
            
            
            
        
    

 

3) springmvc.xml



    
    
    
    
    

 

4) db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/ssm
jdbc.username=root
jdbc.password=123

#最大连接数
c3p0.maxPoolSize=30
#最小连接数
c3p0.minPoolSize=10
#关闭连接后不自动commit
c3p0.autoCommitOnClose=false
#获取连接超时时间
c3p0.checkoutTimeout=10000
#当获取连接失败重试次数
c3p0.acquireRetryAttempts=2

注意修改数据库信息,例如:username、password的值。 

 

5) log4j.properties

log4j.rootCategory=DEBUG, CONSOLE, LOGFILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%m %n

 

8.编写java代码

1)com.jipson.pojo包下新建类:User.java

package com.jipson.pojo;

public class User {
    private int id;
    private String username;

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                '}';
    }
}

 

2)com.jispon.mapper包下新建接口:UserMapper.java

package com.jipson.mapper;

import com.jipson.pojo.User;

import java.util.List;

public interface UserMapper {
    /**
     * 查询所有用户
     * @return
     */
    List selAllUser();
}

 

resource/mapper目录下新建接口的配置文件:UserMapper.xml

UserMapper.xml配置内容如下:




    

为验证代码/配置是否正确,建议写完一个Mapper进行一次单元测试

编写单元测试类:

在src/test/java下新建类: UserTest.java

基于IDEA+Maven的SSM框架整合_第16张图片

基于IDEA+Maven的SSM框架整合_第17张图片

UserTest.java代码如下:

package com.jipson.test;

import com.jipson.mapper.UserMapper;
import com.jipson.pojo.User;
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;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml"})
public class TestUser {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelAllUser(){
        List users = userMapper.selAllUser();
        System.out.println(users);
    }
}

 运行单元测试,点击@Test方法左侧的运行图标(三角形),点击Run 'testSelAllUser()' 运行

基于IDEA+Maven的SSM框架整合_第18张图片

运行成功截图如下:

基于IDEA+Maven的SSM框架整合_第19张图片

如果运行不成功,请检查前面的配置及相关代码。

 

3)编写service业务

新建UserService接口:右键com.jipson.service包-->New-->Java Class

基于IDEA+Maven的SSM框架整合_第20张图片

UserService.java代码如下:

package com.jipson.service;

import com.jipson.pojo.User;

import java.util.List;

public interface UserService {
    List findAllUser();
}

编写UserService接口实现类

右键com.jipson.service包-->New-->Java Class-->impl.UserServiceImpl

基于IDEA+Maven的SSM框架整合_第21张图片

UserServiceImpl.java代码如下:

package com.jipson.service.impl;

import com.jipson.mapper.UserMapper;
import com.jipson.pojo.User;
import com.jipson.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public List findAllUser() {
        return userMapper.selAllUser();
    }
}

 

4)编写控制类

右键com.jipson.controller包-->New-->Java Class-->UserController-->OK

基于IDEA+Maven的SSM框架整合_第22张图片

package com.jipson.controller;

import com.jipson.pojo.User;
import com.jipson.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

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

    /**
     * 返回json数据
     * @return
     */
    @RequestMapping("/find")
    @ResponseBody
    public List findUser(){
        return userService.findAllUser();
    }

    /**
     * 返回jsp页面
     * @param model
     * @return
     */
    @RequestMapping("/allUser")
    public String findUser1(Model model){
        List user = userService.findAllUser();

        model.addAttribute("user", user);
        return "index.jsp";
    }
}

 

5. 编写页面index.jsp

src/main/webapp/index.jsp内容如下:

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



    
    Insert title here


Hello World!

user:${requestScope.user }

 

9.运行测试

1)运行配置,详细可参考:IDEA设置tomcat及部署web项目

点击Run-->Edit Configurations-->点击弹窗左上角"+"-->Tomcat Server-->Local-->修改服务名为ssmdemo(名称随意写)-->Server-->检查Application server是否为本地的Tomcat-->选择运行后访问的浏览器

基于IDEA+Maven的SSM框架整合_第23张图片

点击Deployment-->点击右侧的“+”-->选择Artifact-->选择ssmdeml:war exploded-->在Application context中填写URL访问路径-->OK

基于IDEA+Maven的SSM框架整合_第24张图片

查看服务器名为刚才配置的服务器名称ssmdemo, 点击右侧的运行图标(三角形)运行。

 

浏览器访问:

1) http://localhost:8080/ssmdemo/find

可以看到服务器直接返回json数据到浏览器

 

 

2) http://localhost:8080/ssmdemo/allUser

可看到服务器返回了jsp的内容,并可以通过${requestScope.user }取到服务器的数据。

基于IDEA+Maven的SSM框架整合_第25张图片

 

项目地址: https://github.com/jipsonliang/ssm

 

 

完成!enjoy it!

 

你可能感兴趣的:(ssm,maven,IDEA)