SSM框架學習——day1

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;通過多個模態聯合建模實現協同優…