一、spring实现的2种设计模式
工厂模式
单态模式
注:spring默认将所有的bean设置成单态模式,无须自己实现单态模式.spring工厂模式不仅提供了创建bean的功能,还提供对bean生命周期的管理。最重要的还管理bean与bean之间的依赖关系。
二、依赖注入(DI:Dependency Injection)
依赖注入通常有2种
设值注入(通过setter方法)
<property name="axe">
<ref local="stoneAxe">
</property>
构造注入(通过构造函数)
<constructor-arg>
<ref bean="stealAxe">
</constructor-arg>
区别
设置值注入是先创建一个默认的bean实例,然后调用对应的setter方法注入依赖关系。
构造注入则是在创建实例时,已经完成了依赖关系的注入。
spring有2个接口
BeanFacory和ApplicationContext(是BeanFactory的子接口,也称spring上下文)
BeanFactory接口基本方法
containsBean(String name)
getBean(String name)
getBean(String name,Class type)
getType(String name)
通常实现类是XmlBeanFactory
访问如下:
InputStream is=new FileInputStream("beans.xml");
InputStreamResource isr=new InputStreamResource(is);
XmlBeanFactory factory=new XmlBeanFactory(isr);
或
ClassPathResource res=new ClassPathResource("beans.xml");
XmlBeanFactory factory=new XmlBeanFactory(res);
通常放在class目录下
ApplicationContext常用的实现类如下
FileSystemXmlApplicationContext(以指定路径的xml配置文件创建ApplicationContext)
ClassPathXmlApplicationContext(以ClassPath路径下的xml配置文件创建ApplicationContext)
注意:也可以将xml配置文件名称或路径作为String数组传递给以上2个类的构造函数来创建ApplicationContext。
bean的基本定义
id:唯一的标识符
class:指定bean的具体实现类,这里不能是接口。
注:bean的行为方式有singleton和non-singleton或原型
创建bean
1.调用构造器创建一个bean实例
步骤:创建BeanFactory实例、创建默认实例、根据配置文件注入依赖关系,先实例化bean,然后将依赖bean注入、返回一个完整的JavaBean实例。
2.BeanFactory调用某个类的静态工厂方法创建bean
注意:class属性不再是bean的实现类,而是静态工厂类、必须使用factory-method属性确定产生实例的静态工厂方法、如果静态工厂方法需要参数,则使用<constructor-arg>元素确定静态工厂方法。
3.BeanFactory调用实例工厂方法创建bean
实例工厂方法必须提供工厂实例,因此必须在配置文件中配置工厂实例,而bean元素无需class属性。因为BeanFactory不再直接实例化该bean,仅仅是执行工厂的方法,负责生成bean实例。
factory-bean和factory-method
配置依赖
bean的依赖通常如下
value
ref(local和bean)
bean
list、set、map以及props
注入属性值
PropertyPathFactoryBean
有2个属性targetBeanName和propertyPath
注入field值
FieldRetrievingFactoryBean
注入方法返回值
MethodInvokingFactoryBean
有如下几个属性
实例
targtObject、targetMethod
静态
targetClass、targetMethod
强制初始化bean使用depends-on
自动装配,设置autowire的值
no、byName、byType、constructor、autodetect
依赖检查
dependency-check="all"和dependency-check="objects"
bean生命周期
定制bean的生命周期行为
依赖关系注入之后的行为:
有2种方式:设置init-method属性和实现InitializingBean接口
bean销毁之前的行为
有2种方式:设置destroy-bean属性和实现DisposableBean接口
分享到:
相关推荐
Spring总结
包含Spring简介,AOP,SpringMVC,集成JDBC,事务,ORM框架,Spring集成知识点总结,以思维导图的形式展示,xmind文件。
标题中的“spring总结”指的是对Spring框架的全面回顾和总结,Spring是Java开发中最广泛应用的轻量级框架,尤其在企业级应用开发中占据主导地位。这篇总结可能涵盖了Spring的核心特性、工作原理以及最佳实践。 描述...
Spring个人总结,基于Annotation注解的方式开发,配置
spring总结1可以查看
spring入门笔记
在这个“狂神说”系列的Spring源码总结中,我们可以深入理解Spring的核心概念和实现机制。 1. **依赖注入(DI)与控制反转(IoC)**:Spring的核心特性是依赖注入,它通过反转应用程序对对象的控制权,使得对象的创建和...
【总结】 Spring 框架是一个全方位的解决方案,它不仅提供了一种管理对象生命周期和依赖关系的有效方式,还简化了事务处理、持久层操作和Web应用的开发。通过使用Spring,开发者可以构建出更加模块化、易于测试和...
【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 开发的开源框架,由 Rod Johnson 创建,旨在简化 Java EE 应用的复杂性。它以轻量级、低侵入式的设计理念,提供了全面的解决方案,涵盖从表现层到业务逻辑...
Spring5思维导图
文章目录Spring总结Spring容器控制反转(IoC)基于XML的IoC Spring总结 Spring容器 什么是Spring容器 从概念上讲:Spring 容器是 Spring框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们...
spring方面介绍 常用注解 生命周期 AOP DI
### Spring框架概述与基本配置 #### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson创建并由Pivotal Software提供支持。Spring提供了全面的基础架构支持,使得开发者能够专注于应用...
Spring框架是Java开发中最广泛应用的轻量级框架之一,它以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心特性,极大地简化了企业级应用的开发。这份"Spring思维...