SSM框架概述

SSM框架是Java开发中常用的组合框架,由Spring、Spring MVC和MyBatis三个开源框架整合而成。主要用于构建企业级Web应用程序,具有轻量级、模块化、易扩展等特点。

Spring框架作为核心,提供依赖注入(DI)和面向切面编程(AOP)功能,管理对象生命周期和配置。Spring MVC是基于Spring的Web框架,处理HTTP请求和响应,实现MVC架构。MyBatis是持久层框架,简化数据库操作,通过XML或注解配置SQL映射。

SSM框架核心组件

Spring框架提供IoC容器,管理应用组件及其依赖关系。通过注解如@Autowired实现依赖注入,@Component标识组件。AOP支持日志、事务等横切关注点的模块化处理。

Spring MVC通过DispatcherServlet前端控制器分发请求,@Controller处理请求并返回视图。支持RESTful风格,@RequestMapping定义URL映射。

MyBatis通过SqlSessionFactory创建会话,Mapper接口与XML文件绑定。动态SQL、缓存机制简化数据库交互,避免手动处理JDBC代码。

SSM框架整合配置

整合SSM需配置web.xml初始化Spring容器和Spring MVC。Spring配置文件定义数据源、事务管理器、MyBatis整合等。MyBatis配置SqlSessionFactoryBean,扫描Mapper接口。

<!-- Spring配置示例 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test"/><property name="username" value="root"/><property name="password" value="password"/>
</bean>
// MyBatis Mapper接口示例
public interface UserMapper {@Select("SELECT * FROM users WHERE id = #{id}")User selectUser(int id);
}

SSM框架优势与适用场景

SSM框架适合中小型项目,轻量级且灵活。Spring的IoC和AOP降低耦合,增强可维护性。Spring MVC简化Web开发,MyBatis提供高效的数据库操作。相比SSH(Spring+Struts+Hibernate),SSM更易上手,性能更优。

缺点在于配置较繁琐,需手动编写SQL。大型项目可考虑Spring Boot简化配置,或使用JPA替代MyBatis。

初识spring:

Spring Framework

Spring Framework 是一个开源的Java/Java EE全栈轻量级框架,提供基础设施支持。核心特性包括依赖注入(DI)和面向切面编程(AOP),简化企业级应用开发。主要模块:

  • 核心容器:Bean管理、配置(XML或注解)。
  • 数据访问:JDBC、ORM、事务管理支持。
  • Web模块:MVC框架、RESTful服务开发。
  • 集成:支持消息队列、远程调用等。

Spring Boot

Spring Boot 是 Spring Framework 的扩展,旨在简化独立、生产级Spring应用的搭建。特点:

  • 自动配置:基于依赖自动配置组件(如内嵌Tomcat)。
  • 起步依赖:通过Maven/Gradle简化依赖管理。
  • 命令行界面:支持Groovy脚本快速开发。
  • 监控:内置Actuator模块提供健康检查、指标收集。

Spring Cloud

Spring Cloud 为分布式系统开发提供工具集,基于Spring Boot的快速构建能力。核心功能:

  • 服务发现:Eureka、Consul等注册中心支持。
  • 负载均衡:Ribbon客户端负载均衡。
  • 配置中心:Spring Cloud Config集中管理配置。
  • 熔断器:Hystrix实现服务容错。
  • API网关:Zuul或Spring Cloud Gateway路由控制。

三者关系:Spring Framework为基础,Spring Boot简化单应用开发,Spring Cloud扩展至微服务架构。

spring framework系统构架(上层依赖下层)

AOP在不变源程序的基础上增强功能

耦合度的定义

耦合度(Coupling)指软件系统中模块之间相互依赖的程度。高耦合意味着模块间联系紧密,修改一个模块可能影响其他模块;低耦合则表明模块相对独立,便于维护和扩展。

核心容器(基于对象):

IOC控制反转:使用对象,由主动new转换为外部提供对象,将创建控制权由程序转移到外部

spring技术对ioc进行实现

spring提供容器,称为IOC容器,充当外部。

负责创建对象,初始化操作,被创建和管理的对象在IOC容器中统称bean

DI依赖注入

bean与bean直接的依赖关系的过程,称为依赖注入

IOC入门案例思路:

1.管理什么?(service和Dao)

2.如何将被管理的对象告知IOC容器(配置)

3.被管理的对象交给IOC容器,如何获取IOC容器(接口)

4.IOC容器得到后,如何从容其中获取bean(接口方法)

5.使用Spring导入哪些坐标(pom.xml)

 1.导入Spring坐标

 2.定义spring管理的类(接口)

 3.创建spring配置文件,配置对应类作为spring管理的bean(id不能定义重复)

4.初始化容器

ApplicationContext ctx =new ClassPathxmlApplicationContext("applicationContext.xml)";

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88904.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88904.shtml
英文地址,请注明出处:http://en.pswp.cn/web/88904.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【html基本界面】

小米界面布局效果htmlcss效果 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>小米商城布局<…

【设计模式】适配器模式(包装器模式),缺省适配器模式,双向适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09;详解 一、适配器模式简介 适配器模式是一种结构型设计模式&#xff0c;它将一个类的接口转换成客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以协同工作。 简单来说&#xff0c;适配…

安全初级(一)

一.docker的搭建和VPN连接 1.输入指令&#xff1a;apt-get install docker.io docker-compose 2.设置docker代理&#xff1a;创建文件夹以及对应的文件 /etc/systemd/system/docker.service.d/http-proxy.conf 在该文件中配置自己的代理ip以及代理端口 [Service] Environme…

Java多线程:核心技术与实战指南

目录&#x1f680;前言&#x1f914;什么是多线程&#xff1f;&#x1f4bb;创建线程&#x1f4af;创建方法一&#xff1a;继承Thread类&#x1f4af;创建方法二&#xff1a;实现Runnable接口&#x1f4af;创建方法三&#xff1a;实现Callable接口&#x1f4af;三种方法对比&am…

高斯代数基本定理的一种证明

代数基本定理 对于多项式 f(z)anznan−1zn−1⋯a1za0f(z) a_n z^n a_{n-1} z^{n-1} \cdots a_1 z a_0f(z)an​znan−1​zn−1⋯a1​za0​&#xff08;其中 n>1n > 1n>1 且 an,a0≠0a_n, a_0 \neq 0an​,a0​0&#xff09;&#xff0c;它在复数域内有根。 f(z)U…

【K8S】Kubernetes 使用 Ingress-Nginx 基于 Cookie 实现会话保持的负载均衡

文章目录 1. 创建测试应用 Deployment3. 配置基于 Cookie 的 Ingress4. 部署与测试步骤(1) 应用配置(2) 获取 Ingress IP(3) 测试会话保持(4) 使用 Nginx 取消域名的限制(仅推荐测试使用)5、生产优化建议6、独立 Nginx 配置参考在现代微服务架构中,负载均衡是保证高可用的关…

2.查询操作-demo

在连接数据库的基础上步骤&#xff1a;Query-查询关闭查询db.Next()逐行输出&#xff0c;并指定到当前变量Scan-扫描rows, err : db.Query("SELECT id,server_ip FROM softswitch_server_info")package main//查询语句-demo //关键字-queryimport ("database/sq…

用OpenCV标定相机内参应用示例(C++和Python)

下面是一个完整的 使用 OpenCV 进行相机内参标定&#xff08;Camera Calibration&#xff09; 的示例&#xff0c;包括 C 和 Python 两个版本&#xff0c;基于棋盘格图案标定。一、目标&#xff1a;相机标定 通过拍摄多张带有棋盘格图案的图像&#xff0c;估计相机的内参&#…

(二)OpenCV——边缘增强与检测

边缘增强与检测是图像处理中的核心技术&#xff0c;其核心目标是突出图像中的不连续区域&#xff08;边缘&#xff09;&#xff0c;为后续的图像分析提供基础。一、基本概念边缘本质上是图像中灰度/颜色发生突变的区域&#xff0c;对应着&#xff1a;物体边界表面方向改变材质变…

018 进程控制 —— 进程等待

&#x1f984; 个人主页: 小米里的大麦-CSDN博客 &#x1f38f; 所属专栏: Linux_小米里的大麦的博客-CSDN博客 &#x1f381; GitHub主页: 小米里的大麦的 GitHub ⚙️ 操作环境: Visual Studio 2022 文章目录进程控制 —— 进程等待1. 进程等待必要性2. 常用等待方法&#xf…

PHP password_hash() 函数

password_hash() 函数用于创建密码的散列&#xff08;hash&#xff09;PHP 版本要求: PHP 5 > 5.5.0, PHP 7语法string password_hash ( string $password , int $algo [, array $options ] )password_hash() 使用足够强度的单向散列算法创建密码的散列&#xff08;hash&…

理解Linux文件系统:从物理存储到统一接口

目录 一、狭义理解&#xff08;物理层面&#xff09; 二、广义理解&#xff08;Linux系统视角&#xff09; 三、文件结构解析 四、系统实现机制 一、狭义理解&#xff08;物理层面&#xff09; 存储特性&#xff1a;文件以二进制形式存储在磁盘等永久性存储介质中 介质特点…

前端接入海康威视摄像头的三种方案

方案选择​方案适用场景优缺点​Web SDK&#xff08;3.0&#xff09;​​需要完整功能&#xff08;PTZ控制、录像回放&#xff09;功能全&#xff0c;但需加载海康JS文件​RTSP转Web播放​低延迟实时监控需后端转码&#xff08;如FFmpeg转HLS&#xff09;​HTTP API​简单截图或…

openGL学习(Shader)

认识Shader在计算机图形学中&#xff0c;Shader&#xff08;着色器&#xff09;是一种运行在 GPU&#xff08;图形处理单元&#xff09;上的程序&#xff0c;用于控制图形渲染过程中顶点和像素的处理。着色器是 OpenGL、Direct3D、Vulkan 等图形 API 的核心组成部分&#xff0c…

webpack高级配置

一、了解webpack高级配置&#xff1a; 1、什么是webpack高级配置&#xff1a; 进行 Webpack 优化&#xff0c;让代码在编译或者运行时性能更好 2、webpack优化从哪些方面入手&#xff1a; ① 提升开发体验&#xff0c;增强开发和生产环境的代码调试&#xff1a; 如果代码编写…

LLM表征工程还有哪些值得做的地方

LLM表征工程还有哪些值得做的地方 在大型语言模型(LLM)的表征工程领域,近年来涌现出多个具有突破性的创新方向,这些方法通过动态调整、多模态融合、结构化记忆增强等技术,显著提升了模型的适应性、可解释性和效率。 一、动态自适应表征:从静态到动态的范式革新 传统LL…

LabVIEW智能避障小车

​LabVIEW结合 NI、德州仪器&#xff08;TI&#xff09;、欧姆龙&#xff08;Omron&#xff09;等硬件&#xff0c;设计实现了一款具备智能避障、循迹功能的轮式机器人。系统支持手动操控与自主运行两种模式&#xff0c;通过无线通信实时传输传感器数据与图像信息&#xff0c;在…

逻辑代数中的基本规则,代入规则和反演规则,对偶规则

本文探讨了代入规则在逻辑等式中的应用&#xff0c;解释了如何通过替换变量来保持等式的正确性&#xff0c;同时介绍了反演规则和对偶规则的概念。代入规则定义:在任何一个包含变量A的逻辑等式中&#xff0c;如果用另一个逻辑式代入式中的所有A位置&#xff0c;则等式依然成立反…

Javaweb使用websocket,请先连上demo好吧!很简单的!

Javaweb使用websocket先看结构及效果MyWebSocketHandler用于处理消息WebSocketConfig用于配置建联地址等SchedulerConfig必须配置这个MyWebSocketInterceptor建联的拦截器SpringBootWebsocketApplication启动类POM依赖展示效果源码先看结构及效果 MyWebSocketHandler用于处理消…

文心大模型4.5开源测评:保姆级部署教程+多维度测试验证

前言&#xff1a;国产大模型开源的破局时刻 2025年6月百度文心大模型4.5系列的开源&#xff0c;标志着国产AI从"技术跟跑"向"生态共建"的关键跨越。 文心大模型4.5是百度自主研发的新一代原生多模态基础大模型&#xff0c;通过多个模态联合建模实现协同优…