boot项目找不到注册的mapper

刚刚开始学spring boot,用STS搭建了一个boot项目,
dao层的mapper接口继承了JpaRepository,service层调用findAll(),
controller层调用service的findAll(),
用STS启动时,报如下错误
图片说明
但是用eclipse启动就不报错,
有大佬知道为什么吗?

5个回答

启动类里面加mapper扫描配置了吗?

你应该吧你的配置弄上来让大家来看!

--------------------我的配置,你借鉴一下-----------------------------------
Spring公共配置

<!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入 -->
<context:component-scan base-package="com.ronglian.jspt">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

<!-- 连接池配置 -->
<bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
    <property name="algorithm" value="PBEWithMD5AndDES" />
    <property name="password" value="Z5EXBWDP8QXT6UAY7B8G" />
</bean>
<bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
    <property name="config" ref="environmentVariablesConfiguration" />
</bean>
<bean id="propertyConfigurer" class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
    <constructor-arg ref="configurationEncryptor" />
    <property name="locations">
        <list>
            <value>classpath:db.properties</value>
        </list>
    </property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass">
        <value>${datasource.driverClass}</value>
    </property>
    <property name="jdbcUrl">
        <value>${datasource.jdbcUrl}</value>
    </property>
    <property name="user">
        <value>${datasource.user}</value>
    </property>
    <property name="password">
        <value>${datasource.password}</value>
    </property>
    ....其他属性省略
</bean>

<!-- Jpa Entity Manager 配置 -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
    <property name="packagesToScan" value="com.ronglian.jspt"/>
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <property name="databasePlatform">
        <bean factory-method="getDialect" class="com.ronglian.jspt.quartz.utils.HibernateDialect">
            <constructor-arg ref="dataSource"/>
        </bean>
    </property>
</bean>

<!-- Spring Data Jpa配置, 扫描base-package下所有继承于Repository<T,ID>的接口 -->
<jpa:repositories base-package="com.ronglian.jspt" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/>


<!-- 事务管理器配置, Jpa单数据源事务 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<!-- 使用annotation定义事务 -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

<!-- 定义aspectj -->
<aop:aspectj-autoproxy proxy-target-class="true"/>

启动类里的扫描包的注解是 @MapperScan吗,我这里加不上去
图片说明
以下是我的工程目录:
图片说明
pom:
图片说明
启动类:
图片说明
配置文件application.properties里就配置了数据源

启动类没有基础springboot的加载,改为
public class DemoApplication extends SpringBootServletInitializer{}

@一只小T 加上去之后报错
现在解决了,如下,把boot版本从1.5.7换成1.5.6就运行成功了
图片说明
但是还是不知道具体原因,有大佬知道吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问