求大佬幫忙看看,很絕望
最近做SSM的例子有一個問題困擾了一天了,是關于注入失敗的問題。先上報錯

由于DAO層注入到service層導致service也報錯,controller也報錯。經檢查就是DAO沒能注入到ServiceImpl中。
以下是目錄結構和applicationContext.xml的配置,datasource和sqlSessionFactory都是配置了的

<!-- 開啟注解掃描,希望處理service和dao處理,controller不需要處理-->
<context:component-scan base-package="com.clic">
<!-- 配置不掃描的包-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="https://bbs.csdn.net/topics/com.clic.dao"/>
</bean>
接下來是DAO的代碼。
@Repository("adminLoginDao")
public interface AdminLoginDao {
/**
*登錄介面
* @param employee_num 工號
* @param password 密碼
* @return 回傳一個用戶
* */
@Select("select * from admininfo where employee_num = #{employee_num} and password =#{password}")
Admin getLoginAdmin(String employee_num,String password);
然后是service的代碼
@Service("adminLoginService")
public class AdminLoginServiceImpl implements AdminLoginService {
@Autowired
private AdminLoginDao adminLoginDao;
@Override
public Admin login(String employee_num, String password) {
System.out.println("業務層查詢");
Admin admin = adminLoginDao.getLoginAdmin(employee_num,password);
System.out.println(admin.getStuff_name());
return admin;
}
service的@Autowired配置了,DAO的repository也配了,mapperScanner也沒問題,為什么就是解決不了呢
uj5u.com熱心網友回復:
@Repository("adminLoginDao") 改成 @Repository 試試uj5u.com熱心網友回復:
"<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="https://bbs.csdn.net/topics/com.clic.dao"/>
</bean>
"
你的里面么有配置資料源吧,資料源在哪里配置的?
在上面 <bean> 里面加下面的試試.
<property name="sqlSessionFactoryBeanName" value="https://bbs.csdn.net/topics/你自己的資料源名字"></property>
uj5u.com熱心網友回復:
我一般專案中還是用工具生成的xml式的配置多一點。 看你這應該是注解式的吧, DAO層那個介面是不是要配@Mapper的注解?uj5u.com熱心網友回復:
解決了,本人沒有在web.xml中配置ContextLoaderListener,現在出現了新問題。
@Select("select * from admininfo where stuff_num = #{stuff_num} and password =#{password}")
Admin getLoginAdmin(String stuff_num,String password);
這段代碼執行報錯,跟著debug走發現反射dao的查詢方法的時候
return mapperMethod.execute(sqlSession, args)報下列錯誤java.lang.reflect.InvocationTargetException
具體的原因是
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'stuff_num' not found. Available parameters are [arg1, arg0, param1, param2]
資料庫和物體類都是相同的名字stuff_num。
是注解select的問題嗎
uj5u.com熱心網友回復:
沒有,我配置了MapperScanner就不需要,我也是跟著視頻來的。就是少了個ContextLoaderListeneruj5u.com熱心網友回復:
解決了,竟然是pom的問題,把c3p0連接池的groupId換成com.mchange解決了uj5u.com熱心網友回復:
Admin getLoginAdmin(String stuff_num,String password); 加引數注解Admin getLoginAdmin (@Param("stuff_num") String stuff_num,@Param("password") String password)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/15986.html
標籤:Web 開發
下一篇:求助,eclipse之前都好好的
