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创建后到销毁前做一些事情

  • 初始化容器

    1. 创建对象(内存分配)
    2. 执行构造方法
    3. 执行属性注入(set操作)
    4. 执行bean初始化方法
  • 使用bean

    1. 执行业务操作
  • 关闭/销毁容器

    1. 执行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>
posted @   wlqtc  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示