Bean获取与实例化
发布时间:2020-12-16 23:32:11 所属栏目:百科 来源:网络整理
导读:Bean获取与实例化 ApplicationContext与BeanFactory关系 ApplicationContext它是扩展BeanFactory接口。 BeanFactory它采取延迟加载的方案,只有真正在getBean时才会实例化Bean 在开发中我们一般使用的是ApplicationContext,真正使用的是其实现类, FileSystem
Bean获取与实例化
ApplicationContext与BeanFactory关系 ApplicationContext它是扩展BeanFactory接口。 BeanFactory它采取延迟加载的方案,只有真正在getBean时才会实例化Bean 在开发中我们一般使用的是ApplicationContext,真正使用的是其实现类, FileSystemXmlAppliCationContext 根据文件路径获取 ClassPathXmlApplicationContext 根据类路径获取 AppliCationContext它会在配置文件加载时,就会初始化Bean,并且ApplicationContext它提供不同的应用层的Context实现。例如在web开发中可以使用WebApplicationContext. Bean的实例化方式无参数构造 对于这种方式,注意Bean类中必须提供无参数构造。 静态工厂方法 需要创建一个工厂类,在工厂类中提供一个static返回bean对象的方法就可以。 实例工厂方法 需要创建一个工厂类,在工厂类中提供一个非static的创建bean对象的方法,在配置文件中需要将工厂配置,还需要配置bean Bean的作用域 在bean声明时它有一个scope属性,它是用于描述bean的作用域。 可取值有: singleton:单例 代表在spring ioc容器中只有一个Bean实例 (默认的scope) prototype多例 每一次从spring容器中获取时,都会返回一个新的实例 request 用在web开发中,将bean对象request.setAttribute()存储到request域中 session 用在web开发中,将bean对象session.setAttribute()存储到session域中 在开如常用的值是singleton与prototype Bean的生命周期
使用c名称空间来解决构造器注入 在applicationContext.xml文件中添加c名称空间 注:如果c或p名称空间操作的属性后缀是”-ref”代表要引入另一个已经存在的bean,例如 SpEl spring expression language 是在spring3.0以后的版本提供 它类似于ognl或el表达式,它可以提供在程序运行时构造复杂表达式来完成对象属性存储及方法调用等。 Spel表达式的格式 #{表达式} 示例1:完成bean之间的注入 示例2 支持属性调用及方法调用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |