栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

SSM框架之三大框架的整合

SSM框架之三大框架的整合

1.框架整合流程图

2.框架整合的环境搭建 2.1 导入依赖
 
    UTF-8
    1.8
    1.8
    5.0.2.RELEASE
    1.6.6
    1.2.14
    5.1.6
    3.4.5

  

    
    
      org.aspectj
      aspectjweaver
      1.6.8
    

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

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

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

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

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

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

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

    
      junit
      junit
      4.12
      compile
    

    
      mysql
      mysql-connector-java
      ${mysql.version}
    

    
      javax.servlet
      servlet-api
      2.5
      provided
    

    
      javax.servlet.jsp
      jsp-api
      2.0
      provided
    

    
      jstl
      jstl
      1.2
    

    
    
      log4j
      log4j
      ${log4j.version}
    

    
      org.slf4j
      slf4j-api
      ${slf4j.version}
    

    
      org.slf4j
      slf4j-log4j12
      ${slf4j.version}
    

    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    

    
      org.mybatis
      mybatis-spring
      1.3.0
    

    
      c3p0
      c3p0
      0.9.1.2
      jar
      compile
    
  
2.2 创建数据库和表
CREATE DATAbase ssm;
USE ssm;
CREATE TABLE account(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
money DOUBLE
);

2.3 构建开发所需的三层目录


dao层

package com.lihao.domain;


public class Account {

    private String name;
    private Double money;

    public Account() {
    }

    public Account(String name, Double money) {
        this.name = name;
        this.money = money;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "Account{" +
                "name='" + name + ''' +
                ", money=" + money +
                '}';
    }
}

service接口层

package com.lihao.service;

import com.lihao.domain.Account;

import java.util.List;


public interface AccountService {
    
    List findAll();

    
    void saveAccount(Account account);
}

service实现层

package com.lihao.service.impl;

import com.lihao.domain.Account;
import com.lihao.service.AccountService;

import java.util.List;



public class AccountServiceImpl implements AccountService {
    @Override
    public List findAll() {
        System.out.println("查询所有用户的方法执行了...");
        return null;
    }

    @Override
    public void saveAccount(Account account) {

    }
}

3.spring框架代码的编写 3.1 编写applicationConfig.xml配置文件



    

    
        
        
    

3.2 进行service 层测试 3.2.1 在service层中添加注解
package com.lihao.service.impl;

import com.lihao.domain.Account;
import com.lihao.service.AccountService;
import org.springframework.stereotype.Service;

import java.util.List;



@Service("accountService")//该注解表示把AccountServiceImpl类放入核心容器中
public class AccountServiceImpl implements AccountService {
    @Override
    public List findAll() {
        System.out.println("查询所有用户的方法执行了...");
        return null;
    }

    @Override
    public void saveAccount(Account account) {

    }
}

3.2.2在test包中进行测试
package com.lihao.test;

import com.lihao.dao.AccountDao;
import com.lihao.service.AccountService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class ServiceTest {


    @Test
    public void testFindAll(){
        ClassPathXmlApplicationContext cp = new ClassPathXmlApplicationContext("classpath:applicationConfig.xml");
        AccountService accountService = cp.getBean("accountService", AccountService.class);
        accountService.findAll();
    }
}

注意,在测试过程中发现没有导入log4j日志。需要导入。

4.springmvc框架代码的编写 4.1 编写web.xml中的配置文件




  Archetype Created Web Application

  
  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  

  
    characterEncodingFilter
     
@Controller
@RequestMapping("/user")
public class AccountController {

    @RequestMapping("/controller")
    public String Controller(){
        System.out.println("完成springmvc的编写...");
        return "success";
    }
}

4.5 编写success.jsp
<%--
  Created by IntelliJ IDEA.
  User: 李昊
  Date: 2021/11/30
  Time: 23:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    

springmvc入门成功

5.spring整合springmvc框架

1.目的是在controller中能成功的调用service对象中的方法。

2.在项目启动的时候,就去加载applicationContext.xml的配置文件,在web.xml中配置ContextLoaderListener监听器(该监听器只能加载WEB-INF目录下的applicationContext.xml的配置文件)。
.1使用监听器完成对spring配置文件的加载



  
    org.springframework.web.context.ContextLoaderListener
  

由于监听器默认加载WEB-INF目录下的配置文件。所以,配置一个配置文件路径。


  
    contextConfigLocation
    classpath:applicationConfig.xml
  
5.2加载完成后调整controller类,自动注入service层
package com.lihao.controller;

        import com.lihao.domain.Account;
        import com.lihao.service.AccountService;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.stereotype.Controller;
        import org.springframework.web.bind.annotation.RequestMapping;


@Controller
@RequestMapping("/user")
public class AccountController {


    @Autowired
    private AccountService accountService;

    @RequestMapping("/controller")
    public String Controller(){
        System.out.println("完成springmvc的编写...");

        accountService.findAll();
        return "success";
    }
}

6.Mybatis框架代码的编写 6.1 编写dao层
package com.lihao.dao;

import com.lihao.domain.Account;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;


public interface AccountDao {

    
    @Select("select * from account")
    List findAll();

    
    @Insert("insert into account (name,money) values(#{name},#{money})")
    void saveAccount(Account account);
}
6.2编写SqlMapConfig.xml主配置文件



    
        
            
            
                
                
                
                
            
        
    

    
        
    

6.3 测试
package com.lihao.test;

import com.lihao.dao.AccountDao;
import com.lihao.domain.Account;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.springframework.test.context.jdbc.Sql;

import java.io.IOException;
import java.io.InputStream;


public class DaoTest {

    @Test
    public void testAccountDaoFindAll() throws Exception {

        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");

        SqlSessionFactory sqlSessionFactory =  new SqlSessionFactoryBuilder().build(inputStream);

        SqlSession sqlSession = sqlSessionFactory.openSession();

        AccountDao accountDao = sqlSession.getMapper(AccountDao.class);

        for (Account account : accountDao.findAll()) {
            System.out.println(account);
        }

        sqlSession.close();
        inputStream.close();


    }

    @Test
    public void testAccountDaoSaveAccount() throws Exception {

        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");

        SqlSessionFactory sqlSessionFactory =  new SqlSessionFactoryBuilder().build(inputStream);

        SqlSession sqlSession = sqlSessionFactory.openSession();

        AccountDao accountDao = sqlSession.getMapper(AccountDao.class);

        accountDao.saveAccount(new Account("李米",400d));




        //注意提交事务
        sqlSession.commit();

        sqlSession.close();
        inputStream.close();


    }
}


7.spring整合mybatis框架

只需要把sqlMapConfig.xml的配置文件内容配置到applicationConfig的文件中。

7.1 在applicationConfig文件中编写代码



    

    
        
        
    


    
    
        
        
        
        
    

    
    
        
    

    
    
        
    

7.2 在accountDao中加入@Repository注解 7.3 在service中注入dao对象,进行测试
package com.lihao.service.impl;

import com.lihao.dao.AccountDao;
import com.lihao.domain.Account;
import com.lihao.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;



@Service("accountService")//该注解表示把AccountServiceImpl类放入核心容器中
public class AccountServiceImpl implements AccountService {

    @Autowired
    private AccountDao accountDao;

    @Override
    public List findAll() {
        System.out.println("查询所有用户的方法执行了...");
        return accountDao.findAll();
    }

    @Override
    public void saveAccount(Account account) {
        System.out.println("保存用户的方法执行了...");
        accountDao.saveAccount(account);
    }
}

package com.lihao.controller;

        import com.lihao.domain.Account;
        import com.lihao.service.AccountService;
        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 java.util.List;


@Controller
@RequestMapping("/user")
public class AccountController {


    @Autowired
    private AccountService accountService;

    @RequestMapping("/controller")
    public String Controller(Model model){
        System.out.println("完成springmvc的编写...");

       List accounts =  accountService.findAll();
        for (Account account : accounts) {
            System.out.println(account);
        }

        model.addAttribute("list",accounts);
        return "list";
    }



}

在测试过程中,注意list的代码编辑

<%--
  Created by IntelliJ IDEA.
  User: 李昊
  Date: 2022/1/15
  Time: 18:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%--引入jstl标签库--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    Title



    
        ${account.name}
        ${account.money}
    


7.4 配置声明式事务

    
    
        
    


    
    
        
            
            
        
    

    
    
        
        
    
7.5 进行测试

实现账户的保存功能

姓名: 金额:
package com.lihao.controller;

        import com.lihao.domain.Account;
        import com.lihao.service.AccountService;
        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 javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import java.util.List;


@Controller
@RequestMapping("/user")
public class AccountController {


    @Autowired
    private AccountService accountService;

    @RequestMapping("/controller")
    public String Controller(Model model){
        System.out.println("完成springmvc的编写...");

       List accounts =  accountService.findAll();
        for (Account account : accounts) {
            System.out.println(account);
        }

        model.addAttribute("list",accounts);
        return "list";
    }

    @RequestMapping("/saveAccount")
    public void saveAccount(Account account, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception{

        accountService.saveAccount(account);

        httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/user/controller");

        return;
    }



}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/706830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号