Spring学习二、IOC学习

注入类型

set方法注入
构造方法注入(了解)
接口注入(了解)

Bean的生存范围

这里面描写的非常详细

另外一个

这里 了解较少,需要今后补充!!!!

Bean生命周期

lazy-init:true就是容易启动的时候就初始化类。

init-mehtod:初始化的时候调用的方法

destroy-method:销毁的时候调用的方法

简单属性的注入

public class UserService {

    private UserDAO userDAO;  
    public void add(User user) {
        userDAO.save(user);
    }
    public UserDAO getUserDAO() {
        return userDAO;
    }
    public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
    }

    public UserService(UserDAO userDAO) {
        super();
        this.userDAO = userDAO;
    }
}

对应的XML
<bean id="userService" class="com.bjsxt.service.UserService">
    <!-- 
    <property name="userDAO" ref="u" />
     -->
     <constructor-arg>
        <ref bean="u"/>
     </constructor-arg>
  </bean>

集合属性注入

 <bean name="userDAO" class="com.bjsxt.dao.impl.UserDAOImpl">
    <property name="sets">
        <set>
            <value>1</value>
            <value>2</value>
        </set>
    </property>
    <property name="lists">
        <list>
            <value>1</value>
            <value>2</value>
            <value>3</value>
        </list>
    </property>
    <property name="maps">
        <map>
            <entry key="1" value="1"></entry>
            <entry key="2" value="2"></entry>
            <entry key="3" value="3"></entry>
            <entry key="4" value="4"></entry>
        </map>
    </property>
  </bean>

自动装配

1、byName
会根据参数的名字去配置文件里面寻找

2、byType
会根据要注入的参数的类型去寻找,如果配置文件里面有超过一个匹配,那么就会报错

annotation

@AutoWired:默认按照类型
如果想用byName 结合@Qulifier

@Resource
默认按照名字,找不到就按照类型

你可能感兴趣的:(spring,IOC,ioc学习)