使用spring流程
1、spring的依賴包配置
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
2、提供spring配置文件applicationContext.xml
3、提供log4j.properties配置文件
4、在spring中總共有 四種 方式進行依賴注入,常用的方法爲set方法注入
Set注入
這是最簡單的注入方式,假設有一個SpringAction,類中需要實例化一個SpringDao對象,那麼就可以定義一個private的SpringDao成員變量,然後創建SpringDao的set方法(這是ioc的注入入口):
java對象代碼
package com.bless.springdemo.action;
public class SpringAction {
//注入對象springDao
private SpringDao springDao;
//一定要寫被注入對象的set方法
public void setSpringDao(SpringDao springDao) {
this.springDao = springDao;
}
public void ok(){
springDao.ok();
}
}
隨後編寫spring的xml文件,中的name屬性是class屬性的一個別名,class屬性指類的全名,因爲在SpringAction中有一個公共屬性Springdao,所以要在標籤中創建一個標籤指定SpringDao。標籤中的name就是SpringAction類中的SpringDao屬性名,ref指下面,這樣其實是spring將SpringDaoImpl對象實例化並且調用SpringAction的setSpringDao方法將SpringDao注入:
<!--配置bean,配置後該類由spring管理-->
<bean name="springAction" class="com.bless.springdemo.action.SpringAction">
<!--(1)依賴注入,配置當前類中相應的屬性-->
<property name="springDao" ref="springDao"></property>
</bean>
<bean name="springDao" class="com.bless.springdemo.dao.impl.SpringDaoImpl"></bean>
另外三種分別爲
構造器注入
靜態工廠的方法注入
實例工廠的方法注入
詳解:http://blessht.iteye.com/blog/1162131
總結
Spring IOC注入方式用得最多的是(1)(2)種,多謝多練就會非常熟練。
另外注意:通過Spring創建的對象默認是單例的,如果需要創建多實例對象可以在標籤後面添加一個屬性:
<bean name="..." class="..." scope="prototype">
5、讓spring管理我們對象的創建和依賴,必須將依賴關係配置到spring的核心配置文件中
6、編寫客戶端
代碼:
package com.houlu.spring.client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.houlu.spring.dao.UserDao4MySqlImpl;
import com.houlu.spring.manager.UserManager;
import com.houlu.spring.manager.UserManagerImpl;
public class Client {
public static void main(String[] args){
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
UserManager userManager = (UserManager)factory.getBean("UserManager");
userManager.addUser("張三", "123");
}
}