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

Spring-bean

Spring

网站:spring.io
两个方面:
简化开发:

  • IoC
  • AOP

框架整合:

  • MyBatis

SpringFrameWork系统架构(上层依赖下层)

在这里插入图片描述
解决问题(代码耦合度高——模块与模块之间的依赖程度)
目标:充分解耦
解决方案:使用对象时,在程序中不要主动使用new产生对 象,转换为由外部(核心容器:core container)提供对象

  • IoC(Inversion of Control)控制反转:对象的创建控制权由程序转移到外部,这种思想称为控制反转
  • DI(Dependency Injection)依赖注入:在容器中建立bean与bean之间得依赖关系得整个过程,称为依赖注入
  • bean:IoC容器中创建或者管理的对象
  • bean(IoC容器中创建或者管理的对象)别名配置:name——》定义bean得别名,可定义多个,使用逗号(,)分号(;)空格( )分隔
  • bean的作用范围是单例的,需要用scope = "prototype"可以使用多个对象
  • 合适交给容器进行管理的bean(单例对象):表现层对象,数据层对象,业务层对象,工具对象
  • 不合适交给容器进行管理的bean(需要多例对象):封装实体的域对象
<bean id="bookDao" name="book1 book2 book3" class="com.src.impl.BookServiceImpl"/>

实例化bean

1、构造方法(常用),无参构造方法如果不存在,将抛出异常BeanCreationException

<bean id="bookDao" class="com.src.dao.impl.BookDaoImpl"/>

2、静态工厂

<bean id="bookDao" class="com.src.factory.OrderDaoFactory" factory-metod="getOrderDao"/>

3、实例工厂.先造出工程实例对象

<bean id="userFactory" class="com.src.factory.userDaoFactory"/>
<bean id="userDao" factory-method="getUserDao" factory-bean="userFactory">

4、FactoryBean实例化(使用泛型)
在这里插入图片描述

bean的生命周期

初始化容器
1.创建对象〔内存分配)
2.执行构造方法
3.执行属性注入( set操作)
4.执行bean初始化方法
使用bean
1.执行业务操作
关闭/销毁容器
1.执行bean销毁方法

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

相关文章:

  • phmap 学习和思考
  • GWO-CNN-SVM,基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)
  • 【Mysql】SQL约束、主键约束、非空、唯一、外键约束
  • html--404页面
  • Mybatis plus:IService接口
  • PyScada(四)构建用户 HMI
  • 亿联 AM610 M.2 SSD PCIE 3.0X2 128GB测评
  • NSIS 入门教程 (一)
  • mybatis框架相关问题总结(本地笔记搬运)
  • 这家民营银行起诉担保公司?暴露担保增信兜底隐患
  • 波兰出局奥地利无限可能,荷法无谓争小组第一,谁能小组第一?
  • 帕金森患者饮食指南:科学调养,呵护健康
  • 一般人不要学Python?一般人怎么学Python!!
  • Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标
  • “论数据访问层设计技术及其应用”必过范文,软考高级,系统架构设计师论文
  • 2018一半小结一波
  • Android系统模拟器绘制实现概述
  • Docker: 容器互访的三种方式
  • express.js的介绍及使用
  • JAVA_NIO系列——Channel和Buffer详解
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Service Worker
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 番外篇1:在Windows环境下安装JDK
  • 关于字符编码你应该知道的事情
  • 跨域
  • 前端面试之CSS3新特性
  • 区块链技术特点之去中心化特性
  • 驱动程序原理
  • Java数据解析之JSON
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # Redis 入门到精通(九)-- 主从复制(1)
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #13 yum、编译安装与sed命令的使用
  • #NOIP 2014# day.2 T2 寻找道路
  • #QT项目实战(天气预报)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (06)Hive——正则表达式
  • (42)STM32——LCD显示屏实验笔记
  • (C#)获取字符编码的类
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (js)循环条件满足时终止循环
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读30/100)Convolutional Pose Machines
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转)JAVA中的堆栈
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .htaccess配置重写url引擎
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Compact Framework 3.5 支持 WCF 的子集