什么是ssm?如何使用ssm进行后端开发
目录
- 一、ssm概述
- 1.1 定义
- 1.2 持久层框架 (mybatis&&mybatisPlus)
- 1.3 Web 层框架 springMVC
- 1.4 spring框架
- 二、开发结构
- 2.1 config介绍
- 2.2 controller介绍
- 2.3 dao介绍
- 2.4 domain介绍
- 2.5 exception介绍
- 2.6 interceptor介绍
- 2.7 service介绍
- 三、注解开发介绍
- 3.1 常见的注解
- 3.2 部分注解使用的位置
一、ssm概述
1.1 定义
- SSM框架是Java EE 领域内三大优秀框架的缩写,它们分别指的是 spring,springMVC,Mybatis 框架的简写。
1.2 持久层框架 (mybatis&&mybatisPlus)
- Mybatis 是一个优秀的持久层框架。它采用的框架思想是ORM(对象关系映射),这也是大多数持久层框架采用的思想。何为ORM呢。说简单点ORM实现的功能就是把我们的Java 实体类也数据库的字段对应起来,可以快速的实现Java实体类字段封装到sql 语句,把数据库查询出来的结果集封装到Java实体类。例如,在mysql中,我们的数据定义假设为user_name,那么到了java中,我们就会使用驼峰命名法,这样是无法实现数据对应的。那么mybatis就完美的解决了这个问题
- Mybatis是一个在Mybatis实现上的进一步封装,使得整个开发过程更加简便,例如,对于他来说,不需要书写Dao层的内容。当然,这虽然简化了一定的过程,但是很多时候对于复杂运用还是需要采用Mybatis去进行开发的。
1.3 Web 层框架 springMVC
- spring MVC 是一个web 层的框架,它属于由spring 提供的web 层扩展,通过spring MVC 可以解决掉我们在利用 Servlet 原生API进行 web 模块编写时一个请求就要去对应一个Servlet 类的问题,也可以轻松的解决我们频繁手动进行参数绑定,视图映射等问题。spring MVC可以说极大的简化了我们web 功能模块重复代码的编写,使我们的单个 web 功能模块更加高内聚低耦合。
1.4 spring框架
- 上面我们说了,spring 框架不属于三层架构的任意一层,它工作在整个三层架构,这是怎么回事?因为 spring ,它的核心在IOC 和 AOP,IOC代表的是一个Java bean 容器,通过IOC 可以实现 控制反转和依赖注入,如此我们不在需要手动去new 对象,统一把 Java 对象交由 IOC 容器进行管理加粗样式(依赖关系),解耦我们的程序,基于这一特性,也利于我们spring 整合各类框架实现业务开发。AOP 的主要通过反射家动态代理实现已有方法增强,减少冗余代码,常用来进行 事务管理也日志记录。基于spring 的优良特性也诞生了我们优秀的微服务框架spring Boot,通过spring Boot 我们可以高效进行框架整合(启动器start)。
二、开发结构
2.1 config介绍
- Spring4 以后,官方推荐我们使用Java Config来代替applicationContext.xml,声明将Bean交给容器管理。
在Spring Boot中,Java Config的使用也已完全替代了applicationContext.xml。实现了xml的零配置。所以无论从Spring的演进。其实就是用java类去代替了以前复杂的xml配置,实现简化开发。
2.2 controller介绍
- controller即表现层,是实现和前端对接的重要部分(可以理解为过去在javaweb中学习的servlet部分),在现行springboot的这种方式,使得这一部分的代码书写简单易懂。前端发送的json数据能够很好的进行处理,也能够通过这里获取数据库内容。
2.3 dao介绍
- dao层你可以理解为是具体的向数据库发送sql语句的部分,在mybatisPlus中这部分也是被省略的部分,因为mybatis已经帮我们封装好了一些基本的查询语句,我们只要添加对应依赖即可。
2.4 domain介绍
- 用来定义用户的属性名以及提供getter,setter以及toString,构造方法等。通过对接Dao实现增删改查操作的返回。
2.5 exception介绍
- 对于前期基础的开发,或许我们还能够直接地在service实现类中进行定义,但随着工程量的增大,会发现需要的错误越来越多,而且很多还存在很多的重合,因此,对与异常的输出封装就显得十分必要。
2.6 interceptor介绍
- 这一部分可以称其为拦截器,用来实现拦截有点像(javaweb的filter),书写这里,我们能够实现某些操作,例如访问页面需要先登录等操作。作者在现行操作中使用其解决了jquery的数据拦截问题。
2.7 service介绍
- 对于springboot开发来说,我们并不希望在我们实现某项功能时候还有大量的一些new操作以及判断操作,我们希望在我们实现某个方法的时候只需要通过创建上转型对象实现。因此,我们会在service层书写一个实现类用来对接Dao层的功能实现,然后通过service接口创建实现上转型。
三、注解开发介绍
3.1 常见的注解
- @Controller
组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。
- @Service
组合注解(组合了@Component注解),应用在service层(业务逻辑层)
- @Reponsitory
组合注解(组合了@Component注解),应用在dao层(数据访问层)
- @Component
表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。
- @Autowired
Spring提供的工具(由Spring的依赖注入工具(BeanPostProcessor、BeanFactoryPostProcessor)自动注入。)
- @Configuration
声明当前类是一个配置类(相当于一个Spring配置的xml文件)
- @ComponentScan
自动扫描指定包下所有使用@Service,@Component,@Controller,@Repository的类并注册
- @Bean
注解在方法上,声明当前方法的返回值为一个Bean。返回的Bean对应的类中可以定义init()方法和destroy()方法,然后在@Bean(initMethod=”init”,destroyMethod=”destroy”)定义,在构造之后执行init,在销毁之前执行destroy。
- @Value
值得注入。经常与Sping EL表达式语言一起使用,注入普通字符,系统属性,表达式运算结果,其他Bean的属性,文件内容,网址请求内容,配置文件属性值等等
- @RunWith
这个是Junit的注解,springboot集成了junit。一般在测试类里使用:@RunWith(SpringJUnit4ClassRunner.class) — SpringJUnit4ClassRunner在JUnit环境下提供Sprng TestContext Framework的功能
- @RequestMapping
用来映射web请求(访问路径和参数),处理类和方法的。可以注解在类和方法上,注解在方法上的@RequestMapping路径会继承注解在类上的路径。同时支持Serlvet的request和response作为参数,也支持对request和response的媒体类型进行配置。其中有value(路径),produces(定义返回的媒体类型和字符集),method(指定请求方式)等属性。
- @RestController
组合注解,组合了@Controller和@ResponseBody,当我们只开发一个和页面交互数据的控制层的时候可以使用此注解。
- @SpingBootApplication
SpringBoot的核心注解,主要目的是开启自动配置。它也是一个组合注解,主要组合了@Configurer,@EnableAutoConfiguration(核心)和@ComponentScan。可以通过@SpringBootApplication(exclude={想要关闭的自动配置的类名.class})来关闭特定的自动配置。
3.2 部分注解使用的位置
- Controller,Service,Respontory应用位置,下面是位置对应
- Autowired用来注入需要使用的对象,和value的使用有异曲同工之妙,value用来使用一个变量
- SpringBootApplication
- RestControllerh和ReqiuestMapper运用在Controller
什么是ssm?如何使用ssm进行后端开发相关推荐
- SSM框架中的前后端分离
认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端. ...
- 基于SSM+SpringBoot+MySQL+Vue前后端分离的博客论坛系统
项目运行截图 系统首页 技术描述 开发工具: idea/eclipse 数据库: mysql Jar包仓库: Maven 前段框架: vue/ElementUI/echart 后端框架: spring ...
- 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统
运行视频 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统 项目运行截图 学生管理 添加学生 学生信息 教师管理 教师信息 实习基地 公告信息 公司管理 ...
- ssm框架用html视图,ssm框架是前端还是后端技术分享
ssm框架中前端jsp页面的数据除了表单提交以外如何ssm框架里面,前端页面的数据是怎么绑定的,如果我不用表单提交的话. 刚学完了ssm框架和ajax 可以写一个什么项目 比较简求一个java比较简单 ...
- 【最新】SSM框架中的前后端分离
文章目录 1.认识前后端分离 2.分离的四个好处 3.利用Swagger UI来规范书写API文档 1.认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中 ...
- SSM框架:SSM整合
SSM框架:SSM整合 文章目录 前言 SSM整合 0. 环境搭建 1.环境要求 2.数据库环境 3.基本环境搭建 1.依赖 2.静态资源导出问题 底层 1. SSM整合:Mybatis层 整合dao ...
- SSM:Maven整合ssm时的步骤
QUESTION:SSM:Maven整合ssm时的步骤 目录 QUESTION:SSM:Maven整合ssm时的步骤 ANSWER: ANSWER: 工程结构: 1.在新建的web工程中,pom.xm ...
- Java毕业设计、课程设计、实战项目之[含源码等]基于SSM+Vue的SSM学业预警平台信息管理系统[包运行成功]
基于SSM+Vue的SSM学业预警平台信息管理系统> 后台框架:Spring.SpringMVC.MyBatis 前端:HTML+CSS+JavaScript+vue 数据库:MySQL 管理员 ...
- ssm零食销售系统零食商场ssm购物系统ssm购物商城(ssm电子商务系统)ssm在线销售系统
ssm零食销售系统零食商场ssm购物系统ssm购物商城(ssm电子商务系统)ssm在线销售系统 开发语言:Java 开发工具:Myeclispe /Eclipse 数据库:MYSQL 应用服务:Tom ...
- 【SSM架构】博客系统开发(七)-登陆界面
[SSM架构]博客系统开发7-登陆界面 1 完成效果 2 建login.jsp 3 导入静态资源 4 建login.jsp 5 配置springmvc 6 发布项目,在浏览器地址栏访问 7 所需文件下 ...
最新文章
- 如何自学python基础-零基础小白该如何学习Python?
- python cms应用生成_Django CMS应用程序H教程
- QML和C++混合编程--(三)
- Struts2 + MySQL 实现分页
- java基础之集合:List Set Map的概述以及使用场景
- 用计算机模拟实验技术路线,自然科学基金申请书模板
- 跨平台最好用的五笔输入法 Rime(鼠须管、小狼毫、中州韵) macOS Linux Windows 安装教程
- 将Table转换成HTML
- 计算机英语词汇合成词有哪些,2018年12月英语四级词汇讲解丨考点归纳:合成词...
- C++ 条件运算符 (?:)
- 语音识别(ASR)论文优选:粤语语料集Automatic Speech Recognition Datasets in Cantonese Language: A Survey and a New D
- 让你越来越值钱的秘密:目标清单
- 只有那些不断充实自己的人,才有机会在往后的日子里持续地被雇用
- 用fun函数实现s=(ln(1)+ln(2)+...+ln(m))^1/2,函数返回s
- Android封装sdk页面为h5,Android/H5混合 SDK 集成文档
- ssm在线考试系统设计与实现(论文+程序设计+数据库文件)下载
- 微信小程序一双日记-项目分享
- 药店管理系统(C语言课程设计)(3月1日—3月8日)
- 使用模拟器配置无线网络
- 灵光一闪!帮你使用Vue,搞定无法解决的“动态挂载”
热门文章
- 编程英语词汇大全java_java编程常用英文单词汇总.doc
- 2021-06-22 hi3516ev200 按键输入 gpio_key input 驱动 device tree 设备树方式
- 苹果叶片病害检测论文
- Leetcode69-Sqrt(x)
- Qt使用workflow
- 角色建模《女巫》制作教程讲解
- cilium插件测试_通过CNI Chaining 为k8s 插上Cilium翅膀
- 洛谷P4474 王者之剑(吾王的题目!!!)
- 医院蓝牙导诊导航系统,为医院评审“三甲”助力加分
- js倒计时结束后播放音乐html5,js实现简单的倒计时