Spring的开发配置与Spring中bean的实例化

Spring

1.   三种实例化bean的方法

1)    第一种是使用类构造器实例化;

<bean id="personService"class="com.lcq.service.impl.PersonServiceBean"></bean>


2)    第二种是使用静态工厂方法实例化;

      <beanid="personService1"class="com.lcq.service.impl.PersonServiceBeanFactory"
factory-method="createPersonServiceBean"></bean>


3)    第三种是使用实例工厂方法实例化;

<bean id="PersonServiceBeanFactory"class="com.lcq.service.impl.PersonServiceBeanFactory"></bean>
<bean id="personService2" factory-bean="PersonServiceBeanFactory"factory-method="createPersonServiceBean2"></bean>


2.   bean的作用域,默认的情况之下,spring容器的bean的作用域是单实例的,也就是说当我们从容器中得到的bean实例是同一个。可以使用scope标签设置bean的作用域为原型,也就是说每次得到的bean是不同的对象实例。scope="prototype"。注意默认情况下的bean是在spring容器实例化的时候就进行实例化的;当是原型时bean的实例化是在getbean的时候进行实例化的。也可以在xml中配置bean的加载时机为延迟。

3.   spring的依赖注入之使用属性setter方法实现注入:ref标签或者使用内部bean

1)        

<bean id="personDao" class="com.lcq.dao.impl.PersonDaoBean"></bean>
    <bean id="personService" class="com.lcq.service.impl.PersonServiceBean"
     init-method="init"destroy-method="destory">
        <property name="personDao" ref="personDao"></property>
     </bean>


2)      

  <bean id="personService"class="com.lcq.service.impl.PersonServiceBean"
     init-method="init"destroy-method="destory">
<property name="personDao" >
        <bean class="com.lcq.dao.impl.PersonDaoBean"/>
</ property>
     </bean>

 

配置xml实现spring注入Set和Map等集合类型。

<property name="sets">
        <set>
            <value>第一个</value>
            <value>第二个</value>
            <value>第三个</value>
        </set>
        </property>
       
        <property name="maps">
        <map>
       
            <entry key="key1" value="value1"/>
            <entry key="key2" value="value2"/>
            <entry key="key3" value="value3"/>
       
        </map>
   </property>


4.   使用构造器实现注入

5.   使用注解进行注入

6.   使用注解将bean添加到spring的管理中。

在xml中配置:

<?xml version="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
          http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
    <context:component-scan base-package="com.lcq"/>
</beans>


这样spring容器会在启动时将在指定的包的目录下进行查询查到所有相关的bean对其进行加载和注入。

在相应的需要加载的bean定义的前面添加注解进行标识。

//使用注解将bean添加到spring容器的管理中
@Service @Scope("prototype")
public class PersonDaoBean implements PersonDao {
    //利用注解实现对象初始化操作
    @PostConstruct
    public void init(){
       System.out.println("initinvoked");
    }
    public void add(){
       System.out.println("add methodis invoked!");
    }
 
}


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值