搭建一个最简单的SSM项目(Spring+SpringMVC+Mybatis

首先根据我浅显的认知,回顾一下Spring,Spring MVC,Mybatis各个小demo中需要做的配置工作。。。

Spring的简略配置

Spring是一个基于IOC和AOP的结构J2EE系统的框架IOC 反转控制 是Spring的基础,Inversion Of  Control
简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象
DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。

Spring的核心配置文件 是applicationContext.xml。可以通过如下方式,不需要自己new对象,直接获取已经被注入值的对象

<bean name="u" class="com.spring.pojo.User">

        <property name="name" value="User 1" />

    bean>

如果使用注解的方式进行配置,应该在applicationContext.xml中写上

属性的注解方式有@Autowired(加在属性前或者加在setter前),@Resource(加在属性前,写好值),这样则无需在配置文件中写。对于实体类,也可以进行注解,在class前写上@Component,为属性赋值。

 

 

关于需要了解的SpringMVC知识:

WEB-INF目录下需要创建web.xml。在其中进行servlet的配置。包括

在WEB-INF目录下创建springmvc-servlet.xml。其中这里的与web.xml中的相同。此文件中对访问路径进行相应Controller配置,表面访问某路径交由对应的bean处理。而xxxController实现接口Controller,提供方法handleRequest,获取ModelAndReview的数据,渲染页面。

 

准备mysql的数据库ssm,建立表格category_。插入一定数据。

在eclipse中建立pojo的package,建立Category.java实体类。

 

 

准备接口CategoryMapper,写上各类增删查改方法名。在mapper的package下,新建Category.xml。在Category.xml中,这里必须写上同一个包下CategoryMapper的完整类名,com.ssm.mapper.CategoryMapper。增删查改内容同之前学过的Mybatis。代码如下:



 
    
        
            insert into category_ ( name ) values (#{name})    
        
         
        
            delete from category_ where id= #{id}   
        
         
        
 
        
            update category_ set name=#{name} where id=#{id}    
        
             
    

 

 

分别建立service和service.impl的package。在两个包下分别建立CategoryService和CategoryServiceImpl。值得注意的是CategoryServiceImpl一定要继承CategoryService。由于在applicationContext.xml中,已经进行了相关bean配置。所以可以通过@Autowired的注解方式获取CategoryMapper对象,并调用list方法。

package com.ssm.service;

import java.util.List;

import com.ssm.pojo.Category;

public interface CategoryService {
	List list();
}
package com.ssm.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ssm.mapper.CategoryMapper;
import com.ssm.pojo.Category;
import com.ssm.service.CategoryService;

@Service
public class CategoryServiceImpl implements CategoryService{
	@Autowired
	CategoryMapper categoryMapper;
	
	public List list(){
		return categoryMapper.list();
	}
}

如上所述,访问请求先通过DispatcherServlet,然后访问对应的xxxController类。也就是说,在xxxController类中,开始请求的任务。利用注解在类前标注@Controller,表明这是一个Controller的类。然后通过注解获取categoryService对象。利用categoryService获取种类数据之后,存放在数组中,最终渲染到页面上。

package com.ssm.controller;

import java.util.List;

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;

import com.ssm.pojo.Category;
import com.ssm.service.CategoryService;

@Controller
@RequestMapping("")
public class CategoryController {
	@Autowired
	CategoryService categoryService;
	
	 @RequestMapping("listCategory")
	    public ModelAndView listCategory(){
	        ModelAndView mav = new ModelAndView();
	        List cs= categoryService.list();
	         
	        // 放入转发参数
	        mav.addObject("cs", cs);
	        // 放入jsp路径
	        mav.setViewName("listCategory");
	        return mav;
	    }
}

 

 

以下是各类配置文件

web.xml



	
	
	
		contextConfigLocation
		classpath:applicationContext.xml
	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
	
		mvc-dispatcher
		org.springframework.web.servlet.DispatcherServlet
		
		
			contextConfigLocation
			classpath:SpringMVC.xml
		
		1
	
	
		mvc-dispatcher
		/
	
	

 

 

SpringMVC.xml




    

    
          
    

    
    
    

	
    
        
        
        
    

applicationContext.xml



	
   
	

	  
	    
	      com.mysql.jdbc.Driver  
	    
	    
	      jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8  
	
	    
	    
	      root  
	    
	    
	      admin  
	    	
	
	
	
		
		
		
	

	
		
	
	

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  

        
id name
${c.id} ${c.name}

 

你可能感兴趣的:(Java,EE)