欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

7.21第二次实训课笔记

程序员文章站 2022-05-02 07:53:12
...

第二次实训课笔记

实训感受

  1. 今天学了SSM框架,在导入Maven包的时候,花了很长时间。第一次接触感觉比较陌生,相信多练习以后会好很多。
  2. 今天布置了团队工作,画一个思维导图,我第一次做队长,感觉肩上有责任,要跟队友们一起好好完成这次项目。
    总的来说,今天比较能够进入状态了,跟队友的交流也多了一些,对SSM框架有了初步的认识。

实训过程

  1. 讲解昨天布置的登录模块
  2. 创建Maven项目

7.21第二次实训课笔记

  1. 导入配置文件,本次项目有五个配置文件。
    (1),applicationContext.xml:文件中主要存储一些配置信息,用于完成Spring和MyBatis之间的组合,主要用于配置bean自动扫描,数据库和事务等等。
    (2),pom.xml:主要存储数据库连接的代码
    (3),properties.xml:用于处理日志
    (4),spring-mvc.xml:用于注射映射器和适配器
    (5),web.xml:用于依赖的声明等等
  2. 编写代码
    文件结构

7.21第二次实训课笔记
7.21第二次实训课笔记
controller层

package com.zr.controller;

import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
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;

@Controller
@RequestMapping
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping("login.do")
    public ModelAndView login(String username,String password){
        boolean flag=userService.login(username,password);
        ModelAndView modelAndView=new ModelAndView();
        if(flag){
            modelAndView.setViewName("../ok");
        }
        else {
            modelAndView.setViewName("../failure");
        }
        return modelAndView;
    }
}

service层
UserServiceImpl.java

package com.zr.service.impl;

import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements IUserService {
    @Autowired
    private IUserDao userDao;

    @Override
    public boolean login(String username, String password) {
        User user=userDao.findUserByUsername(username);
        if(user!=null&&user.getPassword().equals(password)){
            return true;
        }
        else {
            return false;
        }

    }

}

IUserService.java

package com.zr.service;

public interface IUserService {
    boolean login(String username,String password);
}

dao层

package com.zr.dao;

import com.zr.bean.User;

public interface IUserDao {
    User findUserByUsername(String username);

}

bean层

package com.zr.bean;

public class User {
    private int id;
    private String username;
    private String password;

    public User() {
    }

    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int 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;
    }
}

mapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zr.dao.IUserDao">
    <select id="findUserByUsername" parameterType="String" resultType="com.zr.bean.User">
        select * from tb_user where username=#{username}
    </select>
</mapper>

结果展示

登录界面
7.21第二次实训课笔记

登录成功
7.21第二次实训课笔记

登录失败
7.21第二次实训课笔记

总结

Spring MVC 拥有控制器,作用跟Struts类似,接收外部请求,解析参数传给服务层。

Spring 容器属于协调上下文,管理对象间的依赖,提供事务机制。

持久层:DAO层(mapper)

DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,

DAO层的设计首先是设计DAO的接口,
然后在Spring的配置文件中定义此接口的实现类,

然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,

DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

业务层:Service层

Service层:Service层主要负责业务模块的逻辑应用设计。

首先设计接口,再设计其实现的类

接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。

Service层的业务实现,具体要调用到已定义的DAO层的接口,

封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

表现层:Controller层

Controller层:Controller层负责具体的业务模块流程的控制。

在此层里面要调用Service层的接口来控制业务流程。

控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。

Service逻辑层设计

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。

使用spring MVC负责请求的转发和视图管理。

spring实现业务对象管理,mybatis作为数据对象的持久化引擎。

在执行上,用户的指令通过mapping映射到controller层,Controller调用业务逻辑处理后,跳转到ModelAndView,然后DispacherSerclet查询视图解析器,找到ModelAndView指定的视图,最后讲该视图显示到客户端web上。

上一篇: Java环境配置

下一篇: Spring