@Service
public class AdminServiceImpl implements AdminService {
//在业务逻辑层中,一定会有数据访问层的对象
@Autowired
AdminMapper adminMapper; //这里报错
@Override
public Admin login(String name, String pwd) {
//根据传入的用户到DB中查询相应用户对象
//如果查到,进行密码比对
return null;
}
}
//下面是service层和dao层的spring配置文件:
=========service层:
<context:component-scan base-package="com.xxx.service"/>
<!--设置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/><!--这里爆红不会影响spring容器的执行-->
</bean>
<!--添加事务的切面-->
<tx:advice id="myadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*select*" read-only="true"/>
<tx:method name="*find*" read-only="true"/>
<tx:method name="*get*" read-only="true"/>
<tx:method name="*search*" read-only="true"/>
<tx:method name="*insert*" propagation="REQUIRED"/>
<tx:method name="*add*" propagation="REQUIRED"/>
<tx:method name="*save*" propagation="REQUIRED"/>
<tx:method name="*delete*" propagation="REQUIRED"/>
<tx:method name="*remove*" propagation="REQUIRED"/>
<tx:method name="*clear*" propagation="REQUIRED"/>
<tx:method name="*update*" propagation="REQUIRED"/>
<tx:method name="*modify*" propagation="REQUIRED"/>
<tx:method name="*change*" propagation="REQUIRED"/>
<tx:method name="*set*" propagation="REQUIRED"/>
<tx:method name="*" propagation="SUPPORTS"/>
</tx:attributes>
</tx:advice>
<!--完成切面和切入点的置入-->
<aop:config>
<aop:pointcut id="mypointcut" expression="execution(* com.xxx.service.*.*(..))"/>
<aop:advisor advice-ref="myadvice" pointcut-ref="mypointcut"/>
</aop:config>
=======================dao层:
<!--读取jdbc.properties属性文件-->
<context:property-placeholder location="jdbc.properties"/>
<!--创建数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--创建SqlSessionFactoryBean-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--数据源-->
<property name="dataSource" ref="dataSource"/>
<!--mybatis配置文件-->
<property name="configLocation" value="classpath:SqlMapConfig.xml"/>
<!--实体类-->
<property name="typeAliasesPackage" value="com.xxx.pojo"/>
</bean>
<!--创建mapper文件的扫描器-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.xxx.mapper"/>
</bean>
你并没有使用private私有属性进行修饰呀,你在AdminMapper adminMapper; 前面加上private,如果还爆红不用管,一般这里包含都是编辑器的原因,纠错能力太强了,无视即可,运行程序看看
AdminMapper有使用@Mapper注解吗