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)";
?