Last active
December 19, 2015 23:59
-
-
Save arganzheng/6038745 to your computer and use it in GitHub Desktop.
如何autowired sqlMapClient到Dao对象中,解决这个问题`java.lang.IllegalArgumentException: Property 'sqlMapClient' is required`。参考文章:
1. http://edwin.baculsoft.com/2010/08/yet-another-simple-swing-spring-and-ibatis-integration-example/
2. http://stackoverflow.com/questions/3807707/injecting-derived-property-for-repository-bean-without-autowired-in-super-clas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Repository | |
public class ApiDao extends SqlMapClientDaoSupport { | |
// empty constructor | |
public ApiDao() { | |
} | |
// autowired constructor | |
// i dont know why, but i cant autowired sqlMapClient directly | |
// it will cause java.lang.IllegalArgumentException: Property 'sqlMapClient' is required | |
@Autowired | |
public ApiDao(SqlMapClient sqlMapClient) { | |
setSqlMapClient(sqlMapClient); | |
} | |
// ... | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 也可以通过基类的方式实现 | |
*/ | |
package me.arganzheng.study.common; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.beans.factory.annotation.Qualifier; | |
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; | |
import com.ibatis.sqlmap.client.SqlMapClient; | |
@SuppressWarnings("deprecation") | |
public class BaseDao extends SqlMapClientDaoSupport { | |
@Autowired(required = true) | |
@Qualifier("sqlMapClient") | |
public void setSqlMapClientWorkaround(SqlMapClient sqlMapClient) { | |
this.setSqlMapClient(sqlMapClient); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" | |
xsi:schemaLocation=" | |
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd | |
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd | |
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd | |
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> | |
<context:annotation-config /> | |
<context:component-scan base-package="me.arganzheng.study" > | |
<context:exclude-filter type="regex" | |
expression="me.arganzheng.study.controller.*" /> | |
</context:component-scan> | |
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> | |
<property name="location"> | |
<value>classpath:db_${config_env}.properties</value> | |
</property> | |
</bean> | |
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> | |
<property name="driverClassName" value="${driverClassName}" /> | |
<property name="url" value="${url}" /> | |
<property name="username" value="${username}" /> | |
<property name="password" value="${password}" /> | |
</bean> | |
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> | |
<property name="configLocation" value="classpath:ibatis-config.xml" /> | |
<property name="dataSource" ref="dataSource" /> | |
</bean> | |
</beans> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment