Spring学习笔记(bean的配置)

创建bean的三种方式

第一种

使用默认的构造函数构建(如果此时没有默认构造函数,则对象无法构建)


 <bean id="accountService" class="AccountServiceImpl" >bean>

第二种

使用某个类中的方法创建对象(如工厂方法)并存入Spring容器

   <bean id="instancefactory" class="InstanceFactory">bean>
   <bean id="accountService" factory-bean="instancefactory" factory-method="getAccountService">bean>
第三种

使用某个类中的静态方法创建对象,并存入Spring对象

 <bean id="accountService" class="StaticFactory" factory-method="getAccountService" scope="prototype"
  >bean> 

bean的作用范围调整

bean标签的scope属性 确定作用范围
取值:
singleton 单例 只会生成一个对象,(多次调用getbean方法产生同一个对象)
prototype 多例 调用多次getbean可以产生多个对象
request 作用于web应用的请求范围
session 作用于web应用的会话范围
global-session 作用于集群环境的会话范围,当不是集群环境,就是session

bean对象的生命周期

singleton
出生:容器创建时出生
活着:容器还在则一直活着
死亡:容器销毁,对象消亡
prototype
出生:当我们使用对象时创建
活着:对象使用过程中一直活着
死亡:当对象长时间不用时,且没有其他对象应用时由垃圾回收器回收

获取核心容器对象

第一种方法

ApplicationContext ,这种方法在读取配置文件的时候就把xml里面相应的对象创建出来了
//单例对象适用

     ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
     IAccountService as = (IAccountService)ac.getBean("accountService");
第二种方法

通过beanfacotory,这种方式只有在getbeans的时候才创建对象

        Resource resource = new ClassPathResource("bean.xml");
        BeanFactory factory = new XmlBeanFactory(resource);
        IAccountService as = (IAccountService)factory.getBean("accountService"); 

你可能感兴趣的:(JAVA)