• springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题


    springboot启动类:

    @SpringBootApplication
    public class MainApp {
    
        public static void main(String[] args) {
    
            SpringApplication.run(MainApp.class, args);
        }
    }

    jpa数据库操作类:

    public interface UserDao extends MongoRepository<User, String> {
    }

    单元测试类:

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringApplicationConfiguration(MainApp.class)
    public class UserDaoTest {
        @Autowired
        private UserDao userDao;
    
        @Autowired
        private ObjectMapper objectMapper;
    
        @Test
        public void add() throws JsonProcessingException {
            for(int i = 1; i <= 5; i++) {
                User user = new User();
                user.setName("测试" + i);
                user.setSex((i%2 == 0) ? 0 : 1);
                user.setPhone("1511111000" + i);
                user.setCreateTime(new Date());
                User save = userDao.save(user);
                System.out.println("保存结果:" + objectMapper.writeValueAsString(save));
            }
        }
    }

    执行结果:

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'UserDaoTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.mlxs.springboot04.mongodb.dao.UserDao UserDaoTest.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.mlxs.springboot04.mongodb.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

    解决方法:

    在springboot启动类中添加@EnableMongoRepositories注解,标注mongoRepository类的路径

    @SpringBootApplication
    @EnableMongoRepositories(basePackages = {"com.mlxs.springboot04.mongodb.dao"})
    public class MainApp {
    
        public static void main(String[] args) {
    
            SpringApplication.run(MainApp.class, args);
        }
    }
  • 相关阅读:
    位运算
    UNIQUE VISION Programming Contest 2022(AtCoder Beginner Contest 248)
    Educational Codeforces Round 127 (Rated for Div. 2) 题解AE
    Google Code Jam Round 1B 2022
    MapReduce编程实践(Hadoop3.1.3)
    Flink安装与编程实践(Flink1.9.1)
    HBase2.2.2安装和编程实践指南
    HDFS编程实践
    Spark安装和编程实践(Spark2.4.0)
    Hive3.1.2安装指南
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/6400416.html
Copyright © 2020-2023  润新知