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销毁方法