SSM整合dome(使用idea搭建maven项目)

1. 相关技术简介

Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2. 使用idea创建maven项目

打开idea创建一个新项目


SSM整合dome(使用idea搭建maven项目)_第1张图片
image.png

选择如图,next


SSM整合dome(使用idea搭建maven项目)_第2张图片
image.png

       需要填入GroupID和ArtifactID
       GroupID和ArtifactID百度上也说的很好理解,这里我说下自己的理解,这两个id可以确定你资源的位置。GroupID一般分为多段,如cn.zst,和eclipse中的包类似,ArtifactID一般代表项目名。如ssmtest,如果你项目里有一个资源Dome.java在包test下,那么这个资源的全路径就是cn.zst.ssmtest.test.Dome.java


SSM整合dome(使用idea搭建maven项目)_第3张图片
image.png

配置maven,选择已经安装好的maven目录


SSM整合dome(使用idea搭建maven项目)_第4张图片
image.png

项目名和创建项目所在的路径(根据个人喜好更改):


SSM整合dome(使用idea搭建maven项目)_第5张图片
image.png

点击完成就创建好了maven项目。

3. 创建工程(以查询所有用户信息为例)基本目录(看自己习惯了,下面是我的,仅供参考)

  • 项目目录
    SSM整合dome(使用idea搭建maven项目)_第6张图片
    image.png
  • 代码详情
    USer.java
package com.model;

import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

public class User {

    private Integer id;

    private String username;

    private String password;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birth;

    private String gender;

    private String email;

    public Integer getId() {
        return id;
    }

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

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

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

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

    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", password="
                + password + ", birth=" + birth + ", gender=" + gender
                + ", email=" + email + "]";
    }

}

USerDao

package com.dao;


import com.model.User;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserDao {
    List selectAll(); 
}

UserMapper.xml




    
        
        
        
        
        
        
    

    
        id, username, password, birth,gender,email
    
    



UserService

package com.service;


import com.model.User;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface UserService {
    List selectAll();
}

UserServiceImpl注意要有注解@Service

package com.service.impl;


import com.dao.UserDao;
import com.model.User;
import com.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 UserDao userDao;
    @Override
    public List selectAll() {
        return userDao.selectAll();
    }
}

MainController 注意要有注解@Controller

package com.controller;

import com.model.User;
import com.service.UserService;
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.bind.annotation.ResponseBody;

import java.util.List;

/**
 *@author zst
 */

@Controller
public class MainController {

    @Autowired
    private UserService userService;

    /**
     *
     * @return users
     */
    @ResponseBody
    @RequestMapping(value = "/selectAll", method = RequestMethod.GET)
    public List selectAll(){
        List users = userService.selectAll();
        System.out.println(users.toString());

        return users;
    }
}

4. 整合ssm

  • pom.xml文件中引入所需要的jar包.

pom.xml 文件核心依赖,有注释

  
    
      junit
      junit
      4.11
      test
    

    
    
      log4j
      log4j
      1.2.17
    
    


    
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-core
      ${spring.version}
    
    
      org.springframework
      spring-beans
      ${spring.version}
    
    
      org.springframework
      spring-context-support
      ${spring.version}
    

    
      org.springframework
      spring-test
      ${spring.version}
    

    
      org.springframework
      spring-jdbc
      ${spring.version}
    

    
      org.springframework
      spring-web
      ${spring.version}
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    


    
    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    
    
    
      org.mybatis
      mybatis-spring
      1.3.0
    
    

    
    
      javax
      javaee-api
      7.0
    
    
    
      mysql
      mysql-connector-java
      5.1.30
    
    
    
      commons-dbcp
      commons-dbcp
      1.2.2
    
    
    
      jstl
      jstl
      1.2
    
    
    
    
      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
    
  

提示:要是使用${slf4j.version}这一种形式,前边中需要指明版本如下


UTF-8
4.0.2.RELEASE
3.4.0
1.7.6

  • Spring与MyBatis的整合

创建jdbc.propertiesspring-mybatis.xml文件 (详情看注释)

jdbc.properties

#驱动
jdbc.driverClassName = com.mysql.jdbc.Driver
#地址
jdbc.url=jdbc:mysql://127.0.0.1:3306/ssmdome?useSSL=false&useUnicode=true&characterEncoding=utf-8
#用户名
jdbc.username = root
#密码
jdbc.password = root

spring-mybatis.xml 主要配置数据源,扫描。




    
    

    
    
    
      
        
          ${jdbc.driverClassName}  
        
        
          ${jdbc.url}  
    
        
        
          ${jdbc.username}  
        
        
          ${jdbc.password}  
         
    

    
    
        
        
        
    
    
    
        
    


  • spring-mvc的整合

创建spring-mvc.xml配置文件. 主要配置自动扫描控制器,视图模式,注解的启动



    
    
    
    
        
            
                text/html;charset=UTF-8
            
        
    
    
    
        
            
                
                
            
        
    

    
    
        
        
        
    

    
    
        
        
        
        
        
        
    


  • 配置web.xml文件

web.xml中配置spring-mvc和spring-mybatis文件。



  Archetype Created Web Application

  

  contextConfigLocation
  classpath:spring-mybatis.xml


  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    true
    
      encoding
      UTF-8
    
  
  
    encodingFilter
    /*
  
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
    org.springframework.web.util.IntrospectorCleanupListener
  

  
  
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
    true
  
  
    SpringMVC
    
    /
  
  
    /index.jsp
  


此时启动tomcat,没问题,测试一下。数据正常返回。


SSM整合dome(使用idea搭建maven项目)_第7张图片
image.png

注意
      在搭建ssm项目的时候会遇到很多坑,这里我总结一下自己遇到的坑。

  • service中的注解不能少
  • spring-mvc,spring-mybatis中包的扫描不能忘。
  • web.xml中引入 spring-mvc,spring-mybatis,还有一些监听器和过滤不能少。
  • 出现bug 要多百度,认真查找原因。

小结:生命不息,学习不止。

你可能感兴趣的:(SSM整合dome(使用idea搭建maven项目))