代码改变世界

spring学习笔记(IOC)

2013-02-26 15:45  hduhans  阅读(114)  评论(0)    收藏  举报

1.在spring配置文件xml中,bean可以用name,也可以用id,效果一样

2.简单属性的注入,<property name="" value="">

例:

View Code
//定义
package com.bjsxt.service;

import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserService {
    private UserDAO userDao;
    private String name;    //注入属性name的值
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public UserDAO getUserDao() {
        return userDao;
    }
    public void setUserDao(UserDAO userDao) {
        this.userDao = userDao;
    }
    public void add(User u){
        userDao.save(u);
        System.out.println("my name is "+name);
    }
    
}

 配置xml

View Code
<bean name="userService" class="com.bjsxt.service.UserService">
      <property name="name" value="hanganglin"></property>
      <property name="userDao" ref="u" />
  </bean>

 3.bean的scope

值:①singleton 共享实例 ②prototype不共享实例,每次请求新建一实例

 4.自动装配 autowire 

值:①byName ②byType

例:

<bean name="userDao" class="com.bjsxt.dao.impl.UserDAOImpl_oracle"></bean>

<bean name="userService" class="com.bjsxt.service.UserService" autowire="byType"></bean>

在调用userService时 会根据com.bjsxt.service.UserService中含有的userDao变量 自动去装配userDao这个bean

 5.lazy-init=“true” spring启动时不加载对应的bean,只有在使用到的时候再加载

6.init-method destroy-method 指定bean加载和消亡时调用的方法,方法体在bean对应的类中

如:<bean name="userService" class="com.bjsxt.service.UserService"  init-method="myInit" destroy-method="myDestroy"> 

其中myInit和myDestroy是在com.bjsxt.service.UserService中定义的方法