当前位置: 代码迷 >> J2EE >> Spring调整Myabtis注入失败.求解答
  详细解决方案

Spring调整Myabtis注入失败.求解答

热度:102   发布时间:2016-04-17 23:30:36.0
Spring整合Myabtis注入失败.求解答
配置文件:


<!-- 1. 数据源 : DriverManagerDataSource -->
<context:component-scan base-package="com.springmvc.dao" />  
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybaitis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

<!-- 
2. mybatis的SqlSession的工厂: SqlSessionFactoryBean 
dataSource / typeAliasesPackage
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"/>
<property name="typeAliasesPackage" value="com.springmvc.mybaitsmodel"/>
</bean>

<bean id="session" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
<!-- <constructor-arg index="1" value="BATCH" />如果想要进行批量操作可加入这个属性 -->
</bean>
<!-- 
3. mybatis自动扫描加载Sql映射文件 : MapperScannerConfigurer 
sqlSessionFactory / basePackage
-->
<bean id="config" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.springmvc.mybaitsmodel"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

<!-- 4. 事务管理 : DataSourceTransactionManager -->
<bean id="manager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="datasource"/>
</bean>

<!-- 5. 使用声明式事务 -->
<tx:annotation-driven transaction-manager="manager" />



DAO:


public class UserDaoImpl implements UserDao {
@Autowired 
private SqlSession session;

public SqlSession getSession() {
return session;
}

public void setSession(SqlSession session) {
System.out.println("runing......");
this.session = session;
}
.....
......后面执行的


想通过注入的方式直接获取session,然后直接调用其中的select等相应的方法,但是注入失败,没有在执行set方法,就大神解答!
------解决思路----------------------
@Autowired不是方法注入没有执行set方法是正常的,楼主只要调用你dao的getSession()看看不为null就成功了
------解决思路----------------------
改用@Resource("sqlSession")
        private SqlSession session;
看行不行
  相关解决方案