queryrunner為jar包中的位元組碼,無法直接通過註解配置
資料來源同樣
因而需要乙個註解類來解決
舉例說明 @configuration 和 @componentscan,引入@import 註解/**
* 該類是乙個配置類,它的作用和bean.xml是一樣的
* spring中的新註解
* @configuration
* 作用:指定當前類是乙個配置類
* @componentscan
* 作用:用於通過註解指定spring在建立容器時要掃瞄的包
* 屬性:
* value:他和basepackages的作用時一樣的,都是用於指定建立容器時要掃瞄的包
* 我們使用此註解就等同於在xml中配置了
*
* @bean
* 作用:用於把當前方法的返回值作為bean物件存入spring的ioc容器中
* 屬性:
* name:用於指定 bean 的 id。預設值為 當前方法的名稱.
* 細節:當我們使用註解配置方法時,如果方法有引數,spring框架會去容器中查詢是否有可用的bean物件
* 查詢的方式與 @autowired註解的作用相同
* @import
* 作用:用於匯入其他的配置類
* 屬性:value:用於指定其他配置類的位元組碼。
* 當我們使用 @import註解後,有@import註解的類就是父類配置,而匯入的就是子配置類
* * @propertysource
* 作用:用於指定properties檔案的位置
* 屬性:
* value:指定檔案的名稱和路徑
* 關鍵字:classpath:表示類路徑
*/@configuration
//@componentscan(basepackages = ) 兩種都可以
@componentscan("huarangmeng")
@import(jdbcconfig.class)
@propertysource("classpath:jdbc.properties")
public class springconfiguration ")
private string driver;
@value("$")
private string url;
@value("$")
private string username;
@value("$")
private string password;
/*** 用於建立乙個queryrunner物件
* @param datasource
* @return
*/@bean(name = "runner")
@scope("prototype")
public queryrunner cretequeryrunner(datasource datasource)
/*** 建立資料來源物件
* @return
*/@bean(name = "datasource")
public datasource cretedatasource()catch (exception e)
}}
倘若有兩個配置類,分別為 springconfiguration.class 和 jdbcconfig.class,直接作為引數,可不使用@configuration註解,兩個類可當作兄弟關係
希望 springconfiguration.class 和 jdbcconfig.class 作為父子關係時//1.獲取容器
//2.得到業務層物件
iuserservice us = ac.getbean("userservice", iuserservice.class);
// jdbcconfig註解類
public class jdbcconfig
// springconfiguration註解類
public class springconfiguration
直接使用junit進行單元測試,存在問題,以下第一步和第二步,每個測試方法都要寫,且要求測試同學有學過spring才會寫出相應的**//1.獲取容器
//2.得到業務層物件
iuserservice us = ac.getbean("userservice", iuserservice.class);
// 第一種做法,給jdbcconfig類新增 @configuration註解
//給springconfiguration中新增掃瞄jdbcconfig的註解
@configuration
public class jdbcconfig
// springconfiguration註解類
@componentscan("huarangmeng")
public class springconfiguration
//第二種做法,給springconfiguration中新增@import註解
public class jdbcconfig
// springconfiguration註解類
@import(jdbcconfig.class)
public class springconfiguration
解決每個測試方法都要寫前兩步的問題@test
public void testfindall()
}
private iuserservice us;
@before
public void init()
@test
public void testfindall()
}仍然存在相應的**需要寫,則使用spring-test包解決問題
為什麼不能直接使用註解注入 iuserservice,原因是 junit 下沒有spring的ioc容器
/**
* 使用junit單元測試,測試我們的配置
* spring整合junit配置
* 1.匯入spring整合junit的jar包
* 2.使用junit提供的乙個註解把原有的main方法替換了,替換成spring提供的
* @runwith
* 3.告知spring 的執行期,spring的ioc容器建立時基於 xml 還是註解的,並說明位置
* @contextconfiguration
* location:指定xml檔案的位置,加上classpath關鍵字,表示在類路徑下
* classes:指定註解類所在的位置
* 當我們使用spring 5.x版本時,要求junit的jar版本必須是4.12及以上
*/@runwith(springjunit4classrunner.class)
@contextconfiguration(classes = springconfiguration.class)
public class userservicetest
}}
Spring Ioc入門案例
4 1 4個核心 beans,core context expression 1個依賴 commons loggins.jar 提供userservice介面和實現類 package com.itheima.a ioc public inte ce userservice package com.i...
Spring IOC常用註解的詳解及案例
目錄 1 spring ioc常用註解的解釋 2 ioc案例 基於xml和基於註解的案例 3 spring中 configuration註解的使用 4 使用spring整合junit實現測試 參考 參考 基本 xml和註解兩個案例 案例 含有事務案例 上述 2 中基於註解開發的ioc案例中,還需要x...
unittest單元測框架
django預設使用python的標準庫unittest編寫測試用例。學習django單元測試之前,先學習下unittest單元測試框架的基本使用。下面實現乙個簡單的單元測試1.簡單的加法和減法功能實現,module.py 如下 encoding utf 8 class calculator doc...