spring介绍

1、spring是一个IOC容易,可以实例化一个具体的bean,可以动态的对bean属性进行装配。

2、支持aop

注入类型:

1、setter

2、构造方法(不常用)

3、接口注入(不常用)

构造方法注入:

在类中,实现一个构造方法,然后将需要的参数传入进去:

private UserDao dao;
getDao()/setDao()
public UserService(UserDao dao) {
  super();
  this.dao = dao;
}
<bean id="userService">
  <constructor-arg>
    <ref bean="dao">
  </constructor-arg>
</bean>

id vs name

id和name是一样的,不一样的是name中可以添加特殊字符。

简单属性注入:

在java类里面有属性,然后在spring的定义bean的地方,在bean里面定义子标签,写<property value="">可以注入该值


bean的生存范围:

scope的意思是范围,默认是singleton,每次取对象都是同一个,

如果是prototype(是原型的意思),每次取都是按照原型实例化一个,所以不是同一个,配置action的时候用prototype,因为struts推荐的就是prototype


集合注入:

<bean id="moreComplexObject" class="example.ComplexObject">
    <!-- results in a setAdminEmails(java.util.Properties) call -->
    <property name="adminEmails">
        <props>
            <prop key="administrator">administrator@example.org</prop>
            <prop key="support">support@example.org</prop>
            <prop key="development">development@example.org</prop>
        </props>
    </property>
    <!-- results in a setSomeList(java.util.List) call -->
    <property name="someList">
        <list>
            <value>a list element followed by a reference</value>
            <ref bean="myDataSource" />
        </list>
    </property>
    <!-- results in a setSomeMap(java.util.Map) call -->
    <property name="someMap">
        <map>
            <entry key="an entry" value="just some string"/>
            <entry key ="a ref" value-ref="myDataSource"/>
        </map>
    </property>
    <!-- results in a setSomeSet(java.util.Set) call -->
    <property name="someSet">
        <set>
            <value>just some string</value>
            <ref bean="myDataSource" />
        </set>
    </property>
</bean>

使用时定义集合,然后get/set,就会自动注入到name 里面。(properties就是一个map,实现了map接口)


在spring.xml文件的头部增加default-autowire="",在下面bean的地方增加属性autowire就是引用头部的default-autowire的值


生命周期:

lazy-init:bean在容器初始化的时候bean不被初始化,什么时候用到了才会初始化

init-method和destroy-method:类在初始化的时候有init方法,结束了有destroy方法,可以在<bean>里面写<bean init-method="init"  destroy-method="destroy"/>

容器在初始化会调用init方法,在销毁的时候调用destroy方法

如果bean被调用两次,并且bean的scope是prototype,则会调用两次init,不会调用destroy,需要监控销毁



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值