一聚教程网:一个值得你收藏的教程网站

热门教程

基于maven的ssm框架整合的示例代码

时间:2022-06-29 00:59:57 编辑:袖梨 来源:一聚教程网

基本概念

1.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)的容器框架。

1.2、SpringMVC

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

1.3、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对象)映射成数据库中的记录。

第一步:通过maven建立一个web项目。

第二步:pom文件导入jar包

(1) pom.xml

我把我pom文件整个都拷贝来了,有些初始化就有的东西你要去掉,保留你自己pom生成的那份。


 4.0.0
 com.test
 ssm
 war
 0.0.1-SNAPSHOT
 ssm Maven Webapp
 http://maven.apache.org
 
  
   
  4.0.2.RELEASE 
   
  3.2.6 
   
  1.7.7 
  1.2.17 
  
 
 
 
  junit
  junit
  3.8.1
  test
 
   
   org.springframework 
   spring-core 
   ${spring.version} 
   
 
   
   org.springframework 
   spring-web 
   ${spring.version} 
   
   
   org.springframework 
   spring-oxm 
   ${spring.version} 
   
   
   org.springframework 
   spring-tx 
   ${spring.version} 
   
 
   
   org.springframework 
   spring-jdbc 
   ${spring.version} 
   
 
   
   org.springframework 
   spring-webmvc 
   ${spring.version} 
   
   
   org.springframework 
   spring-aop 
   ${spring.version} 
   
 
   
   org.springframework 
   spring-context-support 
   ${spring.version} 
   
 
   
   org.springframework 
   spring-test 
   ${spring.version} 
   
   
   
   org.mybatis 
   mybatis 
   ${mybatis.version} 
   
   
   
   org.mybatis 
   mybatis-spring 
   1.2.2 
   
   
   
   javax 
   javaee-api 
   7.0 
   
   
   
   mysql 
   mysql-connector-java 
   5.1.30 
   
   
   
   commons-dbcp 
   commons-dbcp 
   1.2.2 
   
   
   
   jstl 
   jstl 
   1.2 
   
   
   
   
   log4j 
   log4j 
   ${log4j.version} 
   
   
   
   
   
   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 
   
 
 
 ssm
 

第三步:看整体的项目架构,先说明下我这里还没有有关springMVC的相关东西,因为我先整合sping-mybatis,在测试是否成功,成功在整合springMVC

第四步:建立model类

public class User {
 private int id;
 private String name;
 private String password;
 private String password2; 
/*提供set和get方法,toString方法*/
}

第五步:创建数据库,UserDao接口和mapper映射文件

(1)建立很简单的一张表

(2)UserDao接口

public interface UserDao {
  User findUserById(User user);
}

(3)UesrMapper.xml






 
 
 
 

第五步:创建UserService和UserServiceImpl

(1)UserService

public interface UserService {
  public User getUserById(User user); 
}

(2)UserServiceImpl

import org.springframework.stereotype.Service;
import com.ssm.dao.UserDao;
import com.ssm.model.User;
import com.ssm.service.UserService;
@Service("userService")
public class UserServerImpl implements UserService {
 @Resource
 private UserDao userDao;
 public User getUserById(User user) {
  return this.userDao.findUserById(user);
 }
}

第六步:创建jdbc文件和log日志文件

(1)jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root

(2)log4j.properties

log4j.rootLogger=INFO,Console,File 
#定义日志输出目的地为控制台 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.Target=System.out 
#可以灵活地指定日志输出格式,下面一行是指定具体的格式 
log4j.appender.Console.layout = org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n 
 
#文件大小到达指定尺寸的时候产生一个新的文件 
log4j.appender.File = org.apache.log4j.RollingFileAppender 
#指定输出目录 
log4j.appender.File.File = logs/ssm.log 
#定义文件最大大小 
log4j.appender.File.MaxFileSize = 10MB 
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志 
log4j.appender.File.Threshold = ALL 
log4j.appender.File.layout = org.apache.log4j.PatternLayout 
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n 

第七步:整合spring-mybatis.xml


 
  
  
  
  
   
  
 
 
  
   
   
   
   
  
 
  
  
  
   
   
   
  
 
  
  
   
   
  
 
  
  
   
  

第八步:建立测试类

经过以上步骤(log4j不配也没影响),我们已经完成了Spring和mybatis的整合,这样我们就可以编写一段测试代码来试试是否成功了。

测试类在src/test/java中建立,如果测试成功,表示Spring和Mybatis已经整合成功了。输出信息使用的是Log4j打印到控制台。

(1)TestMyBatis测试类

package ssm;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.ssm.model.User;
import com.ssm.service.UserService;

/*让测试运行于Spring测试环境*/
@RunWith(SpringJUnit4ClassRunner.class) 

/*用来指定加载的Spring配置文件的位置,会加载默认配置文件*/
@ContextConfiguration(locations = { "classpath:spring-mybatis.xml" })

public class TestMyBatis {

 @Resource(name = "userService") 
 private UserService userService;

 @Test
 public void test1() {
  User user=new User();
  user.setName("张三");
  user.setPassword("123");
  User user1 = userService.getUserById(user);
  System.out.println(user1.toString());
 }
}

最后!关键看后台输出,也是见证奇迹的时候,如果输出对象那说明你配置整合成功!

那接下来我们开始整合springMVC

第九步:配置springmvc.xml

 
 
  
  
  
  
   
    
    text/html;charset=UTF-8 
    
   
  
  
  
   
    
      
    
   
  
  
  
   
  jsp/" /> 
   
  
  
  
  
   
   
   
   
   
   
  
 

第十步:配置web.xml文件

这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。

 
 
 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:springmvc.xml 
   
  1 
  true 
  
  
  SpringMVC 
   
  / 
  
  
  /index.jsp 
  
 

第十一步最后测试:

(1) 先写login.jsp

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


用户登录:






界面:

(2)在写UserController

import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ssm.dao.UserDao;
import com.ssm.model.User;
@Controller
public class UserController {
 @Resource
 private UserDao userDao;  
@RequestMapping("/jsp/login") 
public String login(HttpServletRequest request){
 String username=request.getParameter("username");
 String password=request.getParameter("password");
 User user=new User();
 //根据用户名和学生查询数据库
 user.setName(username);
 user.setPassword(password);
  User users=userDao.findUserById(user);
 //如果有学生就说明登录成功
 if(users!=null){
  return "susscss";
 }
 //这个jsp我没有写,大家知道就好,你们可以自己写
 return "err";
} 
}

(3)最后susscss.jsp

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


用户账号密码正确,登录成功

完美!

热门栏目