spring容器 bean的细节概述

一 , 创建Bean对象的三种方式
1 , 第一种,使用全限定类名反射创建的方式

		    <bean id="userService" class="com.qyy.service.impl.UserServiceImpl"></bean>

2 , 第二种,使用对象的静态方法创建

		 <!--第二种;使用对象的静态方法创建  factory-method="getUserService"  用于指定静态方法名称, -->
         <!--class属性指定提供静态方法的全限定类名-->
         <bean id="staticUserServie" class="com.qyy.factory.StaticFactory" factory-method="getUserService"></bean>

3 , 第二种,使用对象的非态方法创建

		<!--先把非静态工厂对象配置出来-->
	  <bean id="instanceFactory" class="com.qyy.factory.InstanceFactory"></bean>
	  <!--使用factory-bean引用工厂对象的bean的id,factory-method制定创建的方法-->
	  <bean id="instanceUserService" factory-bean="instanceFactory" factory-method="getUserService"></bean>

public class InstanceFactory {
public IUserService getUserService(){
return new UserServiceImpl();
}
}
public class StaticFactory {
public static IUserService getUserService(){
return new UserServiceImpl();
}
}

开发中配置以第一种为主

二 , Bean对象的作用范围

               singleton        单例的 默认值
               prototype        多例的
               request          作用范围在请求域(请求范围)
               session          作用范围在会话域(一次会话)
               global-session   作用范围在全局会话(在非集群环境下,它就是session)
               
	-scope属性     singleton  是单例(默认值)            prototype  多例的
	
	<bean id="userService" class="com.qyy.service.impl.UserServiceImpl"  scope="prototype" ></bean>

Bean对象的生命周期

 单例对象 :  出生 - 容器创建时,对象就创建了
            活着 - 容器在,对象就一直可用(活着的状态)
            死亡 - 容器销毁,对象就消亡了
            和容器的生命周期下相同,

  多例对象 出生 - 每次对象使用时,都会创建新的
          活着 - 对象在使用过程中一直活着
           死亡 - 当对象长时间不用时,由垃圾回复机制回收

猜你喜欢

转载自blog.csdn.net/weixin_43183496/article/details/105691416
今日推荐