SSM框架学习之路基于XML文件

本篇学习介绍

  本项目基于MVC设计,主要对SSM框架的学习及讲解,分别介绍了xml项目编写流程,
  已经注解模式编写开发,使用开发工具 IDEA ,MYSQL ,Shiro权限认证,AOP日志,
  管理、Maven依赖管理、git版本控制

一、创建一个项目

1、maven配置

 在创建项目之前,检查Maven是否配置,具体配置如图所示:
 第一步:file-->settings

在这里插入图片描述
第二步:设置maven settings 如同所示:
在这里插入图片描述

2、创建maven项目

第一步:file --> new --> project 如图所示:
在这里插入图片描述
第二步:maven–> Next 如图所示:
在这里插入图片描述
第三步:编写项目名称 --> 设置存储路径 --> 编写组织id
在这里插入图片描述
第四步:我们创建的是web工程所以要添加web配置
在这里插入图片描述
第五步:由于我已经添加了,与图片显示有些区别,选择第一个即可,名称为Applcation web
在这里插入图片描述

3、修改pom

第一步:打开pom 添加webmvc依赖如图所示:
在这里插入图片描述
spring-webmvc 依赖如下:

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
    </dependencies>

4、导入资源

前端web页面与静态资源 如图所示:
在这里插入图片描述
导入静态资源步骤:
第一步:把静态资源文件解压出来如图所示:
在这里插入图片描述
第二步:复制静态资源文件
在这里插入图片描述
第三步:粘贴到工作空间去即可
在这里插入图片描述
第四步:复制html页面放入到WEB-INF 下的pages文件中,没有pages文件创建一个 如图所示:
在这里插入图片描述

二、编写web.xml文件

1、DispatcherServlet

具体编写如图所示:
在这里插入图片描述
代码如下:

 <!--前端控制配置-->
    <servlet>
        <!--servlet 名称 随便取名-->
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--加载其他组件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--配置加载文件路径 在resources下新建一个文件夹 spring-->
            <param-value>classpath:spring/*.xml</param-value>
        </init-param>
        <!--配置启动加载优先级-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--配置映射规则-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--表示以/结尾的所有请求-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

2、配置过滤器(filter)

如图所示:
在这里插入图片描述
代码如下:

<!--配置过滤器 统一编码-->
    <filter>
        <filter-name>filter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

三、编写application-mvc.xml

在resource 资源目录下新建一个spring文件夹,在spring文件夹里
创建一个application-mvc.xml 具体如图所示:
在这里插入图片描述

1、替换头协议,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

2、开启注解驱动

<!--开启注解驱动-->
    <mvc:annotation-driven/>

3、放行静态资源

<!--放行静态资源-->
    <mvc:default-servlet-handler/>

4、配置包扫描路径

<!--配置包扫描路径-->
    <context:component-scan base-package="com.sys"/>

5、配置视图解析器

    <!--配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--配置网页路径-->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!--配置网页后缀名-->
        <property name="suffix" value=".html"/>
    </bean>

四、编写通用页面Controller

1、创建com.sys.controller包

2、编写一个IndexController类

具体代码如下:
@RequestMapping("/{page}") 采用的是restful风格编写

package com.sys.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
    
    @RequestMapping("/{page}")
    public String doPage(@PathVariable("page") String page){
        return page;
    }

}

五、IDEA配置tomcat

1、tomcat下载地址

2、tomcat端口配置

打开解压出来的apache-tomcat-8.5.58\conf下的server.xml文件
如图所示:
在这里插入图片描述
修改端口号 初始端口为8080 如图所示 :
在这里插入图片描述

3、IDEA配置tomcat

点击运行配置 如图所示:
在这里插入图片描述
配置tomcat的路径,具体如图所示:
在这里插入图片描述
错误警告提示解决方案 点击fix 如图所示:
在这里插入图片描述
去掉自动追加的访问路径 如图所示:
在这里插入图片描述

4、项目测试

运行运行tomcat ,图中处于运行状态
在这里插入图片描述
在浏览器输入访问地址: localhost:8080/login 如图所示:
在这里插入图片描述
出现404 原因,是应为依赖没有导入,所以出现404错误

六、解决出现访问404错误

1、打开项目配置

如图所示:
在这里插入图片描述
给下面添加依赖 把2区域的依赖全部添加到WEB-INF中如图所示:
在这里插入图片描述
添加成功如图所示:
在这里插入图片描述

2、重启项目

后运行成功会出现自动打开浏览器访问根地址
在这里插入图片描述
访问index页面会出现如图所示 ,说明静态资源配置成功:
在这里插入图片描述

七、IDEA 配置Git

1、安装gitee 码云服务

打开IDEA设置,如图所示:
在这里插入图片描述
选择Plugins 搜索gitee插件,图中我的已经安装过
在这里插入图片描述

2、gitee 具体配置

具体配置如图所示:配置完记得保存
在这里插入图片描述

3、git配置

本地需要安装git ,安装git 只需要修改一下安装路径即可,其他选择项直接默认即可。
传送门git下载地址
官方下载地址
配置git安装路径如图所示:一般情况系统默认会自动选择路径
在这里插入图片描述

4、创建git本地仓库

在这里插入图片描述

5、提交与拉取

在这里插入图片描述
提交拉取方式二
分别为:拉取,提交到本地仓库,提交到远程仓库
在这里插入图片描述

6、提交到本地仓库

在这里插入图片描述

7、提交到远程仓库

在这里插入图片描述

八、整合Mybatis框架

1、导入依赖

修改pom文件 pom中需要删除jdbc 依赖

 <!--连接池依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        <!--数据源核心依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
        <!--mybatis核心依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

2、编写jdbc配置参数

在resource资源文件下新建一个jdbc.properties文件
编写连接参数 1、驱动地址 ,2、连接地址值,3、用户名,4、用户密码,5、最大连接数量
具体内容如下:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db2007?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
jdbc.username=root
jdbc.password=root
jdbc.maxActive=10

3、编写mybatis-config.xml

在资源文件夹的spring文件夹中创建一个mybatis-config.xml文件夹
头文件复制application-mvc.xml中的头文件

4、引入properties配置文件

  <!--引入配置资源-->
    <context:property-placeholder  location="classpath:jdbc.properties"/>

5、配置BruidDataSource对象

<bean  id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <property name="driverClassName" value="${jdbc.dirver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
 </bean>

6、配置SqlSessionFactoryBean对象

 <!--配置SqlSessionFactoryBean mybatis 会话工厂对象-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--在静态资源文件下建一个mapper文件-->
        <property name="mapperLocations" value="classpath:mappers/*.xml" />
    </bean>

7、配置mapper接口扫描

<!--配置接口对象扫描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
        <!--配置mapper扫描路径-->
        <property name="basePackage" value="com.sys.mapper"/>
        <!--此属性可以不配置,不配置会一默认名称注入-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

8、编写一个UserMapper.xml文件

在resource资源文件夹下创建一个mapper文件夹,再在mapper文件夹下创建一个UserMapper.xml文件
替换一下User Mapper.xml 文件的头文件,具体如下:

<?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>

</mapper>

九、创建数据库

1、创建库:

库名为:db2007

CREATE DATABASE db2007 CHARSET utf8;

2、创建表

自定义 ,我以db_user表为例:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for db_user
-- ----------------------------
DROP TABLE IF EXISTS `db_user`;
CREATE TABLE `db_user`  (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(10) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

3、插入几条数据

INSERT INTO `db_user` VALUES (1, 'zhangsan', '123456', 16);
INSERT INTO `db_user` VALUES (2, '李四', '123456', 20);

十、编写业务代码

1、Dao层

在mapper 文件夹下建一个UserMapper接口
编写一个查询所有用户的方法,名称自定义 如图所示:
在这里插入图片描述

2、映射XML

在资源文件夹resource下中的mappers文件夹中建一个UserMapper.xml 前面建了就无需创建,
打开UserMapper.xml 进行映射关联,代码如下:
namespace 是与接口类进行绑定关联,从而产生映射关系

<mapper namespace="com.sys.mapper.UserMapper">

3、编写查询SQL

代码如下:
注意: 查询语句 select 标签 中ID 名称 必须与UserMapper接口中
方法名称保持一致,这样才能产生方法的映射。
resultType:此属性是返回对象实体类型 ,此出我用的User对象

 <select id="findUserAll" resultType="com.sys.entity.User">
        SELECT * FROM db_user
    </select>

整体代码结构如图所示:
在这里插入图片描述

4、编写实体对象

在com.sys包下创建一个entity 包
在entity编写一个实体对象,命名为User
属性名称必须与db_user数据表中字段名称一致
Serializable :此对象为序列化接口
代码如下:

package com.sys.entity;

import java.io.Serializable;

public class User  implements Serializable {
    private  Integer id;
    private  String  name;
    private  String  password;
    private  Integer age;
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                '}';
    }
}

5、编写业务逻辑层接口

在com.sys下创建一个service包,在此包中创建一个UserService接口
编写一个方法此方法,可以直接从dao层复制过来,也可以自己直接定义名称,没有特殊要求
代码下:

package com.sys.service;

import com.sys.entity.User;

import java.util.List;

public interface UserService {

    public List<User> findUserAll();

}

6、编写一个UserService接口实现类

在service下创建一个包,包名为impl ,在impl中创建一个类,命名为UserServiceImpl 实现UserService接口
重写当中的方法,同时注入UserMapper接口
如图所示:
在这里插入图片描述
代码如下:

package com.sys.service.impl;

import com.sys.entity.User;
import com.sys.mapper.UserMapper;
import com.sys.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    
    @Override
    public List<User> findUserAll() {
        return userMapper.findUserAll();
    }
}

7、编写控制层Controller

在controller包中新建一个UserController ,在类上加上@RestController
编写一个访问映射方法,并引入UserService 接口
如图所示:
在这里插入图片描述
代码如下:

package com.sys.controller;

import com.sys.entity.User;
import com.sys.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/findUserAll")
    public  String  getUserAll(){
        List<User> userAll = userService.findUserAll();
        System.out.println(userAll);
        return userAll.toString();
    }
}

8、测试接口

成功返回数据,OK
在这里插入图片描述

十一、总结

在这里插入图片描述
注意事项:每次添加新的jar包依赖需要进入 ,如图所示:
在这里插入图片描述

十二、整合jackson

1、添加jar包依赖

 <!--序列化jackson依赖-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.2</version>
        </dependency>

2、配置json转换器

在application-mvc.xml中配置代码如下:

    <!--通过处理器映射DefaultAnnotationHandlerMapping来开启支持@Controller注解-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <!--通过处理器适配器AnnotationMethodHandlerAdapter来开启支持@RequestMapping注解-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <!-- 设置返回字符串编码 -->
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name = "supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <!-- json转换器 -->
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
    </bean>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值