1. 程式人生 > >解決Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate ar

解決Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate ar

啟動tomcat之後日誌裡面報:Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate are required,

網上看了一些文章,基本上是少了:

 @Resource  
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {  
        super.setSqlSessionFactory(sqlSessionFactory);  
    }  
但是在我這程式碼裡面已經有這個內容:

public class MockDBDaoImpl extends DaoSupport{
	
	private SqlSession sqlSession;
	private boolean externalSqlSession;
	
	@Autowired(required = false)
	public final void setMySqlSessionFactory(@Qualifier("sqlSessionFactoryMock") SqlSessionFactory sqlSessionFactory){
		if(!this.externalSqlSession){
			this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
		}
	}
還是報這個錯,這兩個唯一的不同時這裡有@Qualifier的註解(當你建立多個具有相同型別的 bean 時,並且想要用一個屬性只為它們其中的一個進行裝配,在這種情況下,你可以使用 @Qualifier 註釋和 @Autowired 註釋通過指定哪一個真正的 bean 將會被裝配來消除混亂),這裡有比較詳細的解釋: spring教程

在這個註解後面有sqlSessionFactoryMock,在datasource.xml檔案中檢視裡面沒有這個相關的內容,修改sqlSessionFactoryMock為sqlSessionFactory,並且在datasource.xml檔案中增加相應的bean重新啟動tomcat,報錯消除;