Spring入門簡單總結

使用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");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章