返回顶部
首页 > 资讯 > 后端开发 > JAVA >SSM框架详细讲解
  • 232
分享到

SSM框架详细讲解

mybatisspringjava 2023-09-01 10:09:45 232人浏览 独家记忆
摘要

SSM框架 文章目录 SSM框架(白痴都看完都会)介绍SSM框架一、什么是SSM框架? 1.Spring2.Spring MVC3.Mybatis (核心是SqlSession)二、代码实战 1.创建配置工程2.代码实战(查询记录数

SSM框架

文章目录


介绍SSM框架<原理>

一、什么是SSM框架?

SSM框架是spring、spring mvc 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。

1)持久层:dao层(mapper)层 作用:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。

  • Dao层首先设计的是接口,然后再Spring的配置文件中定义接口的实现类。
  • 然后可以在模块中进行接口的调用来进行数据业务的处理。(不在关心接口的实现类是哪个类)
  • 数据源的配置以及有关数据库连接的参数都在Spring的配置文件中进行配置。

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

  • 先设计接口然后再设计实类,然后再在Spring的配置文件中配置其实现的关联。(业务逻辑层的实现具体要调用到自己已经定义好的Dao的接口上)这样就可以在应用中调用Service接口来进行业务处理。
  • 建立好Dao之后再建立service层,service层又要在controller层之下,因为既要调用Dao层的接口又要提供接口给controller层。每个模型都有一个service接口,每个接口分别封装各自的业务处理的方法。

3)表现层:Controller层(Handler层) 作用:负责具体的业务模块流程的控制。

  • 配置也同样是在Spring的配置文件里面进行,
  • 调用Service层提供的接口来控制业务流程。
  • 业务流程的不同会有不同的控制器,在具体的开发中可以将我们的流程进行抽象的归纳,设计出可以重复利用的子单元流程模块。

4)View层 作用:主要和控制层紧密结合,主要负责前台jsp页面的表示。

各层之间的联系

这里是引用 DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势,Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。

1.Spring

Spring里面的ioc容器aop是我们平时使用最多的。 1)IOC(控制反转) 它可以装载bean,也是一种降低对象之间耦合关系的设计思想。(比如租房子。以前租房子需要一个房子一个房子找,费时费力,然后现在加入一个房屋中介,把你需要的房型告诉中介,就可以直接选到需要的房子,中介就相当于spring容器。) 2)AOP(面向切面)面向对象开发的一种补充,它允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求,如:动态的增加日志安全或异常处理等。AOP使业务逻辑各部分间的耦合度降低,提高程序可重用性,提高开发效率。

横切关注点:从每个方法中抽取出来的同一类非核心业务代码。 2.切面:封装横切信息点的类,每个关注点体现为一个通知方法。 3.通知:切面必须要完成的各个具体工作,也就是切面里的一个个方法。 4.目标:被通知的对象,也就是被通知方法所作用的对象。 5.代理:像目标对象应用通知之后所创建的代理对象。 6.连接点:横切关注点在程序代码中的具体体现,对应用程序执行的某个特定位置。(通俗来讲就是一个个的方法) 7.切入点:切入点就是定位连接点的方式。每个通知上的切入点表达式找到对应的连接点,执行通知之后连接点也就变成了切入点。

2.Spring MVC

<复杂版> 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。 6、 Controller执行完成返回ModelAndView。 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 9、 ViewReslover解析后返回具体View。 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 11、 DispatcherServlet响应用户。

<简单版> 1.客户端发送请求到DispacherServlet(分发器) 2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller 3.Controller调用业务逻辑处理后,返回ModelAndView 4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图 5.视图负责将结果显示到客户端

3.Mybatis (核心是sqlSession)

mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

二、代码实战

1.创建配置工程

1)创建maven工程 2)创建目录

  • src——main下创建两个文件夹(Java和resources)。
  • 和main同级的创建一个test,test里面创建一个Java。

3)配置工程

  • file——project structure——modules

4)创建包

  • 在src——java下创建问价夹(XXX),
  • (XXX)下创建entity,mapper,,service和util包。

5)配置依赖 pom.xml加入依赖,一个是Mybatis的,一个是MySQL的。

代码如下(示例):

          org.mybatis      mybatis      3.5.1              Mysql      mysql-connector-java      5.1.36    

复制

2.代码实战(查询记录数)

1)设计数据库

1)创建实体类 在entity下new一个名为person的class

代码如下(示例):

public class Person {        private Integer Id;    private String name;    private String nickname;    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 getNickname() {            return nickname;    }    public void setNickname(String nickname) {            this.nickname = nickname;    }    public Integer getAge() {            return age;    }    public void setAge(Integer age) {            this.age = age;    }    @Override    public String toString() {            return "Person{" +                "Id=" + Id +                ", name='" + name + '\'' +                ", nickname='" + nickname + '\'' +                ", age=" + age +                '}';    }}

复制

2)Mapper接口 定义方法(实体名+Mapper) 在mapper下创建一个名为PersonMapper的interface

public interface PersonMapper {        //定义查询记录方法数    public Integer findCount();    }

复制

3)resources包

  • resources包下创建cn包
  • cn包下创建kGC
  • kgc包下创建一个XML(这里的xml文件名与mapper接口名一致) xml文件中有两个部分组成,一个是头部文件,一个是主体
//头文件:

复制

//查询映射标签(select):    

复制

(1)mapper叫根节点,根节点有个属性是namespace=””、namespace=””、的作用是映射我们mapper的全路径,在以后的使用中会自动映射成我们mapper的实现类 (2)select里面的Id=“”一般和我们PersonMapper里面的方法名保持一致 (3)返回值这里有一个专门的属性叫resultType=”java.lang.Integer” (4)方法名和返回值都对应之后看有无参数,如果有要加上parameterType=””

4)写sql语句`

            select count(*) from t_user                insert into t_user(name,nickname,age) values(#{    name},#{    nickname},#{    age})        

复制

测试类

    @Test    public void testInsert() throws Exception {            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        //5.调用接口的方法        Person p = new Person();        p.setName("李四");        p.setNickname("一个人的夜晚上");        p.setAge(22);        sqlSession.getMapper(PersonMapper.class).addPerson(p);        //6.提交实物,该行代码必须放在关闭sqlsession之前        sqlSession.commit();        sqlSession.close();    }

复制

3.代码实战(增删改查,模糊精确查询集合

完整工程代码 Person类

package cn.kgc.entity;public class Person {        private Integer Id;    private String name;    private String nickname;    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 getNickname() {            return nickname;    }    public void setNickname(String nickname) {            this.nickname = nickname;    }    public Integer getAge() {            return age;    }    public void setAge(Integer age) {            this.age = age;    }    @Override    public String toString() {            return "Person{" +                "Id=" + Id +                ", name='" + name + '\'' +                ", nickname='" + nickname + '\'' +                ", age=" + age +                '}';    }}

复制

PersonMapper类

package cn.kgc.mapper;import cn.kgc.entity.Person;import org.apache.ibatis.annotations.Param;import java.util.List;public interface PersonMapper {        //定义查询记录方法数    public Integer findCount();    //增加    public Integer addPerson(Person person);    //修改功能    public Integer updatePerson(Person person);    //删除功能    public Integer delById(Integer Id);    //删除功能2    public Integer delById2(Person person);    //查询对象    public Person findById(Integer Id);    //查询集合    public List findAll();    //模糊查询    public List findByName(String name);    //通过用户名和昵称 绝对查询    public List findByPerson(Person person);    //通过用户名和昵称 绝对查询2    public List findByPerson2(@Param("name")String name,@Param("nickname")String nickname);    //测试¥(不安全)符号和#(安全)的作用    public List findColList(@Param("colname")String colname);}

复制

MybatisUtil类

package cn.kgc.util;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 java.io.IOException;import java.io.InputStream;public class MytabisUtil {        private static SqlSessionFactory factory = null;    static {            try {                InputStream in = Resources.getResourceAsStream("mybatis-config.xml");            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();            factory = builder.build(in);        }catch (IOException e){                e.printStackTrace();        }    }    //获取SqlSession对象    public static SqlSession getSqlSession(){            SqlSession sqlSession = null;        if(factory!=null){                sqlSession = factory.openSession();        }        return sqlSession;    }}

复制

PersonMapper.xml

            select * from t_user where id = #{    Id}                select * from t_user where `name` like concat('%',#{    name},'%')                select * from t_user where  `name` = #{    name} and nickname = #{    nickname}        

复制

jdbc.properties(配置文件)

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/db_202125username=rootpassWord=123

复制

mybatis-config.xml

                                                                                                                                                                                                                                                                                                                        

复制

TestMybatis类

import cn.kgc.entity.Person;import cn.kgc.mapper.PersonMapper;import cn.kgc.util.MytabisUtil;import jdk.internal.util.xml.impl.Input;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 java.io.IOException;import java.io.InputStream;import java.util.List;public class TestMybatis {        @Test    public void testHelloWorld() throws IOException {            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        //5.调用接口的方法        Integer count = sqlSession.getMapper(PersonMapper.class).findCount();        //6.输出对应的返回值count        System.out.println("count:" + count);        //7.关闭 SqlSession        sqlSession.close();    }    @Test    public void testInsert() throws Exception {            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        //5.调用接口的方法        Person p = new Person();        p.setName("李四");        p.setNickname("一个人的夜晚上");        p.setAge(22);        sqlSession.getMapper(PersonMapper.class).addPerson(p);        //6.提交实物,该行代码必须放在关闭sqlsession之前        sqlSession.commit();        sqlSession.close();    }    @Test    public void testupdate() throws Exception {            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        Person p2 = new Person();        p2.setId(2);        p2.setName("赵四");        p2.setNickname("来啊,造作啊");        p2.setAge(23);        sqlSession.getMapper(PersonMapper.class).updatePerson(p2);        //6.提交实物,该行代码必须放在关闭sqlsession之前        sqlSession.commit();        sqlSession.close();    }    @Test    public void testdel() throws  Exception{            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        sqlSession.getMapper(PersonMapper.class).delById(2);        sqlSession.commit();        sqlSession.close();    }    @Test    public void testdel2 () throws Exception{            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        Person person = new Person();        person.setId(2);        sqlSession.getMapper(PersonMapper.class).delById2(person);        sqlSession.commit();        sqlSession.close();    }    @Test    public void testfindById () throws Exception{            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        Person person = sqlSession.getMapper(PersonMapper.class).findById(1);        System.out.println("id"+ person.getId()+"name"+ person.getName()+"nickname"+ person.getNickname()+"age"+ person.getAge());        sqlSession.close();    }    @Test    public void testfindAll () throws IOException{           String str ="mybatis-config.xml";        InputStream in =Resources.getResourceAsStream(str);        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        SqlSessionFactory factory = builder.build(in);        SqlSession sqlSession = factory.openSession();        List all = sqlSession.getMapper(PersonMapper.class).findAll();        for(Person p:all){                System.out.println(p);        }        sqlSession.close();    }    @Test    public void testfindByName () throws IOException{            String str ="mybatis-config.xml";        InputStream in =Resources.getResourceAsStream(str);        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        SqlSessionFactory factory = builder.build(in);        SqlSession sqlSession = factory.openSession();        List list = sqlSession.getMapper(PersonMapper.class).findByName("wqz");        for(Person p:list){                System.out.println(p);        }        sqlSession.close();    }    @Test    public void testfindByPerson () throws IOException{            String str ="mybatis-config.xml";        InputStream in =Resources.getResourceAsStream(str);        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        SqlSessionFactory factory = builder.build(in);        SqlSession sqlSession = factory.openSession();        Person person = new Person();        List list = sqlSession.getMapper(PersonMapper.class).findByPerson(person);        for(Person p:list){                System.out.println(p);        }        sqlSession.close();    }    @Test    public void findByPerson2 () throws Exception {            //1.通过流的机制获取主配置文件mybatis-config.xml的主要配置信息        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");        //2.实例化SqlSessionFactoryBuilder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //3.调用builder对象的builder()方法,获取SqlSessionFactory对象        SqlSessionFactory factory = builder.build(in);        //4.调用factory对象的openSession()方法,获取SqlSession对象        SqlSession sqlSession = factory.openSession();        String name = "王五";        String nickname = "123";        List list = sqlSession.getMapper(PersonMapper.class).findByPerson2(name,nickname);        for(Person p:list){                System.out.println("name:"+p.getName()+"nickname"+p.getNickname());        }        sqlSession.close();    }    @Test    public void testfindCount(){            SqlSession sqlSession = MytabisUtil.getSqlSession();        Integer count = sqlSession.getMapper(PersonMapper.class).findCount();        System.out.println(count);    }    @Test    public void findColList(){            SqlSession sqlSession = MytabisUtil.getSqlSession();        List colList = sqlSession.getMapper(PersonMapper.class).findColList("Id");        for (Person p:colList){                System.out.println(p);        }    }}

复制

pom.xml

  4.0.0  war  20211125  org.example  20211125  1.0-SNAPSHOT                    org.mortbay.jetty        Maven-jetty-plugin        6.1.7                                            8888              30000                                ${    project.build.directory}/${    pom.artifactId}-${    pom.version}          /                                org.mybatis      mybatis      3.5.1              mysql      mysql-connector-java      5.1.36              junit      junit      4.12      test          

来源地址:https://blog.csdn.net/m0_60814318/article/details/128403613

--结束END--

本文标题: SSM框架详细讲解

本文链接: https://lsjlt.com/news/388153.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SSM框架详细讲解
    SSM框架 文章目录 SSM框架(白痴都看完都会)介绍SSM框架一、什么是SSM框架? 1.Spring2.Spring MVC3.Mybatis (核心是SqlSession)二、代码实战 1.创建配置工程2.代码实战(查询记录数...
    99+
    2023-09-01
    mybatis spring java
  • SSM框架讲解(史上最详细的文章)
    SSM框架(白痴都看完都会) 文章目录 SSM框架(白痴都看完都会)介绍SSM框架一、什么是SSM框架?1.Spring2.Spring MVC3.Mybatis (核心是SqlSession) 二、代码实战1.创建配置工程2....
    99+
    2023-08-24
    java ssm mybatis
  • 快速搭建SSM框架【详细】
    文章目录 一、开发环境准备二、搭建SSM2.1新建Maven项目2.2项目整体结构2.3spring-config.xml配置2.4jdbc.properties配置2.5mybatis-co...
    99+
    2023-10-09
    mybatis java spring
  • SpringMVC 整合SSM框架详解
    整合SSM 环境要求 环境: IDEA MySQL5.7.19 Tomcat9 Maven3.6 要求: 需要熟练掌握MySQL数据库,Spr...
    99+
    2024-04-02
  • SSM框架
    SSM介绍 什么是SSM框架 SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使...
    99+
    2023-09-09
    java mybatis 数据库
  • Flutter路由框架Fluro使用教程详细讲解
    目录1.Navigator使用简介2.fluro1.配置2.使用方法3.路由拦截3.封装1.Navigator使用简介 使用Flutter 的Navigator 导航器可以实现页面的...
    99+
    2022-11-13
    Flutter路由框架Fluro Flutter Fluro
  • Scrapy爬虫框架集成selenium及全面详细讲解
    目录一、架构介绍二、安装创建和启动三、配置文件目录介绍四、爬取数据,并解析五、数据持久化保存到文件保存到redis保存到MongoDB保存到mysql六、动作链,控制滑动的验证码七、...
    99+
    2024-04-02
  • SSM框架使用poi导入导出Excel的详细方法
    1.首先我们先导入poi和文件上传的依赖 <!--POI--> <dependency> <groupId>org.a...
    99+
    2024-04-02
  • SSM框架原理
    SSM框架:spring、springMVC、mybaits。Spring:spring是一个容器。类似于一个对象工厂,按要求标记的类都会被提前放入这个容器。对于对象的生成,不用手动来new,可以通过IOC...
    99+
    2024-04-02
  • IDEA SSM框架整合配置及步骤详解
    目录参考前言SSM框架整合步骤MybatisSpringSpring MVC层一些杂七杂八的配置参考 狂神说SpringMVC05:整合SSM框架 https://mp.weixin...
    99+
    2024-04-02
  • Golang详细讲解常用Http库及Gin框架的应用
    目录1. Http标准库1.1 http客户端1.2 自定义请求头1.3 检查请求重定向1.4 http服务器性能分析2. JSON数据处理2.1 实体序列化2.2 处理字段为小写下...
    99+
    2024-04-02
  • 超细致讲解Spring框架 JdbcTemplate的使用
    目录JdbcTemplate基本使用1-JdbcTemplate基本使用-概述(了解)2-JdbcTemplate基本使用-开发步骤(理解)3-JdbcTemplate基本使用-快速...
    99+
    2024-04-02
  • SpringSecurity概念及整合ssm框架的示例详解
    基本概念 Spring中提供安全认证服务的框架,认证:验证用户密码是否正确的过程,授权:对用户能访问的资源进行控制 用户登录系统时我们协助 SpringSecurity 把用户对应...
    99+
    2022-12-16
    SpringSecurity整合ssm框架 SpringSecurity概念
  • pytest框架之fixture详细使用详解
    本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话...
    99+
    2024-04-02
  • 【OAuth2】详细讲解
    文章目录                         一、Oauth2是什么?                         二、Oauth2的四种角色?                         三、Oauth2的...
    99+
    2023-09-20
    大数据 java spring boot web app
  • springmvc详细讲解
    一、SpringMVC 1.1 引言 java开源框架,Spring Framework的一个独立模块。 MVC框架,在项目中开辟MVC层次架构 对控制器中的功能 包装 简化 扩展践行工厂...
    99+
    2023-10-21
    servlet java spring mvc
  • SpringBoot框架详细介绍
    目录 1.SpringBoot简介 2. 搭建springboot工程 3. 了解pom.xml以及配置文件 4. springboot的配置文件种类 5. java读取springboot配置文件的内容。 第一种: @Value读取 第二...
    99+
    2023-10-08
    spring boot java spring
  • SSM(Spring+SpringMVC+Mybatis)框架整合
    1、数据准备 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `admin` -- ------------------...
    99+
    2014-11-03
    SSM(Spring+SpringMVC+Mybatis)框架整合
  • Java框架之Maven SSM集合
    目录SSMMaven什么是mavenMaven好处,为什么要用Maven三种仓库坐标概念总结SSM @Controller,@Service本质都是@Component,作用是new...
    99+
    2024-04-02
  • ssm框架如何使用redis
    ssm框架使用redis的示例:导入Redis相关jar包,代码:<!-- redis相关 -->    <dependency>  &...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作