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