SSM
SSM
1. 基础
Spring Framework是Spring生态圈中最基础的项目,是其它项目的根基
- IOC(Inversion of control)控制反转
使用对象时,在程序中不要主动使用new产生对象,此过程中对象控制权由程序转移到外部,转换为外部提供对象
对象的创建控制权由程序转到外部,这种思想称为控制反转
- spring技术对IOC思想进行了实现
spring提供了一个容器,称为ioc容器,用来充当ioc思想中的外部
ioc容器负责对象的创建,初始化等一系列工作,被创建或被管理的对象在ioc容器中统称为bean
- DI(dependency Injection)依赖注入:
在容器中建立bean之间依赖关系的整个过程,称为依赖注入
在IOC容器内将有依赖关系的bean进行关系绑定
最终效果:
使用对象不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系
2. bean
spring创建的bean默认是单例,不然用一次造一个。
适合交给容器进行管理的bean:
表现层对象
业务层对象
数据层对象
工具对象
不适合交给容器进行管理的bean:
封装实体的域对象
2.1 bean实例化
实例化bean使用无参构造方法实例对象,无参构造方法如果不存在,将抛出异常BeanCreationException
2.2 bean的声明周期
bean的生命周期:bean从创建到销毁的整体过程
bean的生命周期控制:在bean创建后到销毁前做一些事情
-
初始化容器
- 创建对象(内存分配)
- 执行构造方法
- 执行属性注入(set操作)
- 执行bean初始化方法
-
使用bean
- 执行业务操作
-
关闭/销毁容器
- 执行bean销毁方法
3. 依赖注入
3.1 setter注入
简单类型
在bean中定义引用类型属性并提供可访问的set方法:
public class BookDaoImpl implements BookDao {
private int connectionNumber;
public void setConnectionNumber(int connectionNumber){
this.connectionNumber = connectionNumber;
}
}
在配置中shiyong property标签value属性注入简单类型数据
<bean id = "bookDao" class="com.itheima.dao.impl.BookDaoImpl">
<property name="connectionNumber" value="10">
</bean>
3.2 构造器注入
有构造器方法,标签换成constructor-arg
自己开发的模块推荐使用setter注入
3.3 依赖自动装配
- IOC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配
- 自动装配方式:
- 按类型(常用)
- 按名称
- 按构造方法
- 不启用自动装配
自动装配优先级低于setter注入和构造器注入,同时出现时自动装配配置失效。
4. 数据源对象管理
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring_db"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现