SSM框架简单搭建

spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的。虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实例记录下来吧。


实例

第一步——导包

Spring框架包及其依赖包 
MyBatis框架包及其依赖包 
MyBatis-EhCache架包 
C3P0架包 
MySQL数据库驱动包

项目架包如下: 

项目结构如下: 

第二步——整合Dao层(Spring+MyBatis)

sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
</configuration>

因为MyBatis交给Spring管理,因此Mapper在Spring中配置,这里的配置只打开二级缓存

applicationContext-dao.xml

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_pwc" />
        <property name="user" value="pwc" />
        <property name="password" value="123456" />
        <property name="maxPoolSize" value="20" />
        <property name="minPoolSize" value="1" />
        <property name="initialPoolSize" value="3" />
        <property name="maxIdleTime" value="15" />
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:sqlMapConfig.xml" />
        <property name="dataSource" ref="dataSource" />
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.pwc.dao.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

    </bean>

</beans>

1.该配置自动扫描单例化采用代理方式的Mapper,单例化的Mapper的bean名为Mapper接口第一个字母为小写的名。 
2.千万要注意sqlSessionFactory的bean中的configLocation属性,其value值务必记得加上classpath:前缀,不然无法加载MyBatis配置文件

第二步——整合Service层(Spring)

业务接口和业务实现

UserService.Java

package cn.pwc.service;
import java.util.List;
import cn.pwc.pojo.User;

public interface UserService {
    public void add(User user) throws Exception;
    public void delete(User user) throws Exception;
    public User getUserById(int id) throws Exception;
    public List<User> listUserByAge(int age) throws Exception;
}

UserServiceBean.java

package cn.pwc.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.pwc.dao.mapper.UserMapper;
import cn.pwc.pojo.User;
import cn.pwc.service.UserService;

@Service @Transactional
public class UserServiceBean implements UserService{

    @Resource(name="userMapper")
    private UserMapper mapper;

    @Override
    public void add(User user) throws Exception {
        mapper.insert(user);
    }

    @Override
    public void delete(User user) throws Exception {
        mapper.deleteById(user.getId());
    }

    @Override
    public User getUserById(int id) throws Exception {
        User user=null;
        user=mapper.findById(id);
        if(user==null){
            throw new Exception("User is not existed!");
        }
        return user;
    }

    @Override
    public List<User> listUserByAge(int age) throws Exception {
        List<User> list=null;
        list=mapper.findByAge(age);
        if(list==null){
            throw new Exception("List is empty!");
        }
        return list;
    }
}

本实例采用自动扫描加载的方式,因此该业务bean需注解@Service 
本实例交由Spring管理事务,因此该业务bean需注解@Transactional

applicationContext-service.xml

 <context:component-scan base-package="cn.pwc.service" />
 

第三步——添加事务管理

applicationContext-transaction.xml

   <bean id="txManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />

    </bean>

    <tx:annotation-driven transaction-manager="txManager" />

采用mvc:annotation-driven标签自动装载视图控制器处理器解析器等

第四步——整合视图层(SpringMVC)

springmvc.xml

<context:component-scan base-package="cn.pwc.controller"/>

    <mvc:annotation-driven />
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/" />
        <property name="suffix" value=".jsp" />
    </bean>

采用mvc:annotation-driven标签自动装载视图控制器处理器解析器等

视图Controller(HelloController.java)

package cn.pwc.controller;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.pwc.pojo.User;
import cn.pwc.service.UserService;

@Controller
public class HelloController {

    @Resource(name="userServiceBean")
    private UserService service;

    @RequestMapping("/hello")
    public ModelAndView sayHello(){
        User user=null;
        User user2=null;
        User user3=null;
        try {
            user = service.getUserById(1);
            user2=service.getUserById(1);
            user3=service.getUserById(1);
            System.out.println("OK!");
        } catch (Exception e) {
            e.printStackTrace();
        }
        ModelAndView view=new ModelAndView("hello");
        view.addObject("user", user);
        return view;
    }
}

该Controller类需注解@Controller 
视图控制方法需注解@RequestMapping,作为url请求处理方法

第五步——将所有配置装载到Spring容器中

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext-*.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>

    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

务必注意servlet-mapping中url-pattern属性值不能为/* 
加载的配置文件路径必须有classpath:前缀

时间: 2024-10-24 15:39:25

SSM框架简单搭建的相关文章

ssm框架的搭建

最近有很多朋友问我一些ssm框架的搭建过程,由于其中一些配置文件相对比较多,我在这整理了一下,搭建了一个简单的ssm框架模型,有需要的朋友可以参考一下 ssm模型我放在了github上了,这是网址   https://github.com/hhy0602/ssm.git

java开发SSM框架的搭建(SpringMVC+Spring+MyBatis)

由于某些原因,重装系统,java-web开发虽然顺手,但烦人的一点是开发环境的搭建.差不多折腾了一整天,笔者在这里把SSM开发环境的搭建重新清理一遍,以飨读者,也供自己以后参考.善于总结,是做好每份工作必备的素质之一. 1安装java虚拟机-JDK(1.7_51) 详见笔者博文:http://blog.csdn.net/gisredevelopment/article/details/24304085 2 安装MyEclipse(2014专业版) 下载地址:http://www.myeclips

SSM框架——整合搭建流程

本文是作者在看完 http://blog.csdn.net/zhshulin/article/details/37956105/ 之后自己搭建的流程: 1.首先创建maven工程,使用哪种方式进行创建都可以,可以参考博主之前的文章: <两种方式创建Maven项目[方式二]><两种方式创建Maven项目[方式一]> 2.先看看搭建最终搭建完成后的项目结构: 3.搭建流程: 数据库使用的是:mysql ide使用的是:eclipse[Version: Neon.2 Release (4

SSM框架整合搭建教程

自己配置了一个SSM框架,打算做个小网站,这里把SSM的配置流程详细的写了出来,方便很少接触这个框架的朋友使用,文中各个资源均免费提供! 一. 创建web项目(eclipse) File-->new-->Dynamic Web Project (这里我们创建的项目名为SSM) 下面是大致目录结构 二. SSM所需jar包 jar包链接:https://pan.baidu.com/s/1dTClhO 密码:n4mm 三. 整合开始 1.mybatis配置文件(resource/mybatis/S

ssh框架简单搭建

这里是个人对SSH框架搭建的一点心得,仅供新手,勿喷 首先,搞清楚分层, 视图层 --> 控制层  --> 业务层 --> DAO层--> 持久层 搭建的顺序是从后向前,搭建一点测试一点,免得都最后找错误太过于繁琐 先搭建持久层,这里是hibernate框架接管 1.建立javaBean对象(ElecText.jvav)   属于持久层对象(PO对象)   属性ID.名称.日期.备注2.创建映射文件ElecText.hbm.xml   建立PO对象与数据库表Elec_Text的关联

Python学习(三) Django框架简单搭建

为了快速学习Python进行Web的开发,所以我不准备从Python的基础学起,直接从Django框架入手,边学框架边学Python的基础知识. 下面就开始Django的快速开发之旅吧. 关于Django框架1.8的英文文档在其官网上都有,地址 https://docs.djangoproject.com/en/1.8/intro/ Python的开发手册地址:https://pythonspot.com/getting-started/ https://docs.djangoproject.c

SSM框架的搭建(Spring+SpringMVC+Mybatis第一个项目的搭建)

作者使用MyEclipse 2014版本 本博客所编写程序源码为: http://download.csdn.net/detail/tmaskboy/9526815 1. 新建Web project 2. 添加ljar文件 3. web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

简单的SSM框架搭建教程

简单的ssm框架的搭建和配置文件 ssm框架里边的配置: 1.src路径下直接存放数据库和log4j的properties文件 2.src路径下建个config包,分别放置ssm的xml文件 3.修改WEB-INF路径下的web.xml 4.注意放置配置文件的路径问题 1.src路径下的jdbc.propreties和log4j.properties log4j.properties log4j.properties里边的代码,例如: # Global logging configuration

实习小结(二)---SSM框架搭建

SSM项目框架搭建 前几天做了一个学生信息管理的项目,使用纯控制台输入,查询数据库,将信息在控制台中打印,功能完善得差不多之后,老师让将这个项目移植到Web中,使用Spring+SpringMVC+MyBatis将项目做成网页,借此机会熟悉一下SSM框架的搭建流程. 项目的目录结构如下: SSM框架搭建流程: 1.项目所需要的jar包 图片中的jar包可能一些多于的包,另外在开发中遇到没有导入的包的时候再去下载 2.配置文件 (1)web.xml <?xml version="1.0&qu