Как исправить: Ошибка при создании компонента с именем : Неудовлетворенная зависимость, выраженная через поле в springboot mybatis

#java #spring-boot #mybatis

Вопрос:

ПРЕДУПРЕЖДЕНИЕ 12700 — [ restartedMain] ConfigServletWebServerApplicationContext : Исключение, возникшее во время инициализации контекста — отмена попытки обновления: org.springframework.beans.factory.Исключение UnsatisfiedDependencyException: Ошибка при создании компонента с именем «mycontroller»: Неудовлетворенная зависимость, выраженная через поле «сервис»; вложенным исключением является org.springframework.beans.factory.Исключение UnsatisfiedDependencyException: Ошибка при создании компонента с именем «UserService»: Неудовлетворенная зависимость, выраженная через поле «userMapper»; вложенное исключение-организация.пружинная рама.фасоль.фабрика.Исключение UnsatisfiedDependencyException: Ошибка при создании компонента с именем ‘userMapper’, определенным в файле [D:ToolEditorideaIuworkplacetoWordtargetclassescomexampletowordmapperUserMapper.class]: Неудовлетворенная зависимость, выраженная через свойство компонента «SqlSessionFactory»; вложенным исключением является org.пружинная рама.фасоль.фабрика.Исключение BeanCreationException: Ошибка при создании компонента с именем «SqlSessionFactory», определенным в ресурсе пути к классу [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Не удалось создать экземпляр компонента с помощью заводского метода; вложенным исключением является org.springframework.beans.Исключение BeanInstantiationException: Не удалось создать экземпляр [org.apache.ibatis.session.SqlSessionFactory]: Фабричный метод «SqlSessionFactory» выдал исключение; вложенное исключение-java.lang.NoClassDefFoundError: org/springframework/jdbc/источник данных/транзакцияwaredatasourceproxy

Пользовательский контроллер

 @RestController
public class UserController {
@Autowired
private UserService service;

@RequestMapping("/queryAlluser")
   public List<User> queryalluser() {
      List<User> list = service.queryAlluser();
      return list;
   }
}
 

UserMapper

 @Mapper
@Component
public interface UserMapper {
      List<User> queryAlluser();
}
 

UerService

 @Service
public class UserService {
  @Autowired
  private UserMapper userMapper;
  public List<User> queryAlluser(){
    return userMapper.queryAlluser();
  }
}
 

UserMapper.xml

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.toword.mapper.UserMapper">
  <select id="queryAlluser" resultType="com.example.toword.entity.User">
     select *
     from user
  </select>
</mapper>
 

Я добавил @MapperScan(базовые пакеты =»com.example.toword.mapper») в приложение SpringBootApplication.
И настроили отображение местоположения в приложении.yml следующим образом.

 mybatis:
  mapper-locations: classpath:com.example.toword.mapper/*.xml
  configuration:
     map-underscore-to-camel-case: true
 

введите описание изображения здесь

Комментарии:

1. java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy — Это ошибка во время выполнения, а не компиляции. Вы успешно скомпилировали библиотеку в classpth, но пытаетесь запустить приложение без нее в пути к классу. Пожалуйста, укажите командную строку, которую вы используете для запуска приложения.

2. о! да, я обнаружил, что моя <зависимость > от области spring-jdbc была тестовой . Боже, я такая глупая .