当前位置: 首页 > news >正文

spring学习笔记一

Spring Framework框架

在这里插入图片描述

Spring Framework学习路线

在这里插入图片描述

IOC核心概念

在这里插入图片描述

IOC入门案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DI入门案例

在这里插入图片描述
在这里插入图片描述

这里的set方法是容器在调用
在这里插入图片描述
在这里插入图片描述

代码:

<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">  
<!--配置service与dao的关系  
property标签表示配置当前的bean属性  
name是BookServiceImpl的你自己起的属性名,ref是要注入,关联的bean的名字  
-->  <property name="bookDao" ref="bookDao"></property>  </bean>

bean基础配置

bean起别名

在这里插入图片描述

bean的作用范围

在这里插入图片描述
在这里插入图片描述

bean的实例化

第一种:通过构造方法(常用)

在这里插入图片描述

方式二:静态工厂

为了兼容早期遗留的系统而创,了解即可。
在这里插入图片描述

方式三:实例工厂

在这里插入图片描述

方式四(实用)

在这里插入图片描述

UserDaoFactoryBean代码:

public class UserDaoFactoryBean implements FactoryBean<UserDao> {  //创建对象  public UserDao getObject() throws Exception {  return new UserDaoImpl();  }  //返回对象类型  public Class<?> getObjectType() {  return UserDao.class;  }  //设置创建的是否为单例对象  public boolean isSingleton() {  return false;  }  
}

applicationContext.xml核心代码:
注意这里创建的不是UserDaoFactoryBean对象而是FactoryBean接口中getObject()造出来的对象。

<!--方式四:使用FactoryBean实例化bean-->  
<bean id="userDao" class="com.itheima.factory.UserDaoFactoryBean"/>

bean的生命周期

在这里插入图片描述

bean生命周期执行的阶段

在这里插入图片描述

方式一

自己编写初始化与销毁方法。然后在配置文件配置。
在这里插入图片描述

方式二:接口方式实现(了解)

在这里插入图片描述

bean销毁时机

在这里插入图片描述

依赖注入方式

在这里插入图片描述

set注入引用类型

在这里插入图片描述

set注入简单类型

在这里插入图片描述

构造器注入引用类型

在这里插入图片描述

构造器注入简单类型

在这里插入图片描述
在这里插入图片描述

总结

强制依赖:这个bean运行必须要的东西则用强制依赖。
在这里插入图片描述

自动装配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集合注入

很少用到。

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl">  <!--数组注入-->  <property name="array">  <array>           <value>100</value>  <value>3300</value>  <value>180</value>  </array>    </property>
</bean>

数组注入

<property name="array">  <array>        <value>100</value>  <value>3300</value>  <value>180</value>  </array></property>

list集合注入(重点)

<property name="list">  <list>       <value>张成</value>  <value>张成</value>  <value>张成</value>  <value>张成</value>  </list></property>

set集合注入

<property name="set">  <set>        <value>itcast</value>  <value>itheima</value>  <value>boxuegu</value>  <value>boxuegu</value>  </set></property>

map集合注入(重点)

<property name="map">  <map>       <entry key="country" value="china"/>  <entry key="province" value="henan"/>  <entry key="city" value="kaifeng"/>  </map>
</property>

Properties注入

<property name="properties">  <props>        <prop key="country">china</prop>  <prop key="province">henan</prop>  <prop key="city">kaifeng</prop>  </props>
</property>

案例:数据源对象管理

在这里插入图片描述

核心代码:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>  <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db1?useSSL=false&amp;serverTimezone=UTC"/>

加载properties

在这里插入图片描述
在这里插入图片描述

容器

创建容器

在这里插入图片描述

获取bean

第一种常用
在这里插入图片描述

容器类层次结构图

在这里插入图片描述

核心容器总结

容器相关

在这里插入图片描述

bean相关

在这里插入图片描述

依赖注入相关

在这里插入图片描述

http://www.dtcms.com/a/306168.html

相关文章:

  • 如何理解时间复杂度
  • 【世纪龙科技】比亚迪电动汽车技术仿真教学软件-助力人才培养
  • idea 集成飞算Java AI 教程
  • Mac下的Homebrew
  • 《Sentinel服务保护实战:控制台部署与SpringCloud集成指南》
  • Docker-01.Docker课程介绍
  • 【异世界历险之数据结构世界(冒泡、选择、快速排序)】
  • OpenCV图像缩放:resize
  • 【c++】leetcode763 划分字母区间
  • Ganttable 时间仪表盘
  • java~单例设计模式
  • 小架构step系列30:多个校验注解
  • 「Linux命令基础」压缩文件
  • ica1靶机攻略
  • iOS电池寿命与App能耗监测实战 构建完整性能监控系统
  • MSVC编译KDChart过程
  • IFCVF驱动+vhost-vfio提高虚拟机网络性能
  • BWCTAKC11X64G佰维/BIWIN存储容量为64GB
  • Java内存模型(JMM)
  • 制作一款打飞机游戏84:游戏视觉优化
  • 创建型设计模式-单例模式
  • Django模型关系:从一对多到多对多全解析
  • JSON.parse解析大整数踩坑
  • 9.项目起步(3)
  • ETCD学习之路
  • 代码随想录算法训练营第三十六天
  • 微软 Power Platform 使用Power Automate自动添加用户到AD域环境并分配环境角色
  • 「源力觉醒 创作者计划」_文心大模型 4.5 开源 28 天:从车间轴承到山村课堂的 AI 突围
  • 硬件电路设计(基本元器件)
  • 微信小程序苹果手机和安卓,怎么做适配