Spring beanの自動組立

4321 ワード

ドキュメントを見ると5.45 autwiringですが、springでは自動組立は推奨されていません.annotationを使用することを推奨します.
byName

    <bean id="userDao" class="cn.sxt.dao.impl.UserDaoMysqlImpl"/>
    <bean id="service"  class="cn.sxt.service.impl.UserServiceImpl"  autowire="byName">
    bean>
public class UserServiceImpl implements UserService{
    private UserDao userDao=null;
    public UserServiceImpl() {
        super();
    }
    public void setUserDao(UserDao userDao){
        this.userDao=userDao;
    }
    @Override
    public void getUser() {
        userDao.getUser();
    }
}
このように設定したい場合は、それぞれが非常に面倒です.ヘッダファイルにデフォルトの設定を追加することができます.

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd"  default-autowire="byName">
by Type

    <bean  class="cn.sxt.dao.impl.UserDaoMysqlImpl"/>
    <bean id="service"  class="cn.sxt.service.impl.UserServiceImpl"  autowire="byType">
    bean>
トラック

    <bean  class="cn.sxt.dao.impl.UserDaoMysqlImpl"/>
    <bean id="service"  class="cn.sxt.service.impl.UserServiceImpl"  autowire="constructor">
    bean>