当前位置: 首页 > 知识库问答 >
问题:

创建带有名称的bean时出错:通过字段表示的不满足的依赖关系

林弘文
2023-03-14
@Controller
public class AccountController {

    @Autowired
    AccountService accountService;
@Service
public class AccountServiceImpl implements AccountService {

    @Autowired
    AccountDAO accountDao;
    
    
    //since we have added support for transaction manager
    //@Transactional is use to automatically begin and end transaction
    
    @Override
    @Transactional
    public boolean saveAccount(Account account) {
        return accountDao.saveAccount(account);
        //return false;
        // TODO Auto-generated method stub
        //return accountDao.saveAccount(account);
    }
@Repository
public class AccountDAOImpl implements AccountDAO {
    
    //we r @Autowiring sessionFactory cuz hibernate use sessionFactory for db connectivity
    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public boolean saveAccount(Account account) {
        boolean saveFlag = true;
        
        AccountEntity accountEntity = new AccountEntity();
        accountEntity.setAccountNo(account.getAccountNo());
        accountEntity.setAccountHolderName(account.getAccountHolderName());
        accountEntity.setAccountType(account.getAccountType());
        accountEntity.setAccountBalance(account.getAccountBalance());
        accountEntity.setDateOfBirth(account.getDateOfBirth());
        accountEntity.setPsCode(account.getPsCode());
        
        try {
            Session currentSession = sessionFactory.getCurrentSession();
            currentSession.save(accountEntity);
        } catch (Exception e) {
            e.printStackTrace();
            saveFlag = false;
        }
        
        return saveFlag;
    }
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/psbankdb?useSSL=false" />
        <property name="user" value="psbankdb" />
        <property name="password" value="123" />
    </bean>
    
    <!-- sessionFactory is used to connect with db using above dataSource(ref="dataSource)" -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="packagesToScan" ref="com.ps.springmvc.psbankApp" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <!-- to display sql property on the console while execution -->
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>
    
    <!-- TransactionManager it uses session factory as ref -->
    <bean id="myTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    
    <!-- it allow us to use annotation to eliminate manual coding to start and stop transaction -->
    <tx:annotation-driven transaction-manager="myTransactionManager" />

获取低于错误

UnsatisfiedDependencyException:创建名为“Account Controller”的bean时出错:通过字段“Account Service”表示不满足的依赖关系;嵌套异常是org.springframework.beans.factory.unsatisfiedDependencyException:创建名为“Account ServiceImpl”的bean时出错:通过字段“Account DAO”表示未满足的依赖关系;嵌套异常是org.springframework.beans.factory.unsatisfiedDependencyException:创建名为“Account DAOImpl”的bean时出错:通过字段“session Factory”表示不满足的依赖关系;嵌套异常是org.springframework.beans.factory.beanCreationException:创建ServletContext资源[/WEB-INF/BankAppContext.xml]中定义的名为“session Factory”的bean时出错:在设置bean属性“Packages toscan”时,无法解析对bean“com.ps.springmvc.psbankApp”的引用;嵌套异常是org.springframework.beans.factory.nosuchbeandefinitionexception:没有名为'com.ps.springmvc.psbankapp'的bean可用postprocessor.java:399)org.springframework.beans.factory.support.abstractauTowireCapleBeanFactory.populateBean(abstractauTowireCapleBeanFactory.java:1422)org.springframework.beans.factory.java:1422)org.springframework.beans.factory.docreateBean(abstractauTowireCapleBeanFactory.beans.factory.javfactory.support.abstractbeanFactory.lambda$dogetbean$0(AbstractBeanFactory.java:323)

共有1个答案

万俟靖
2023-03-14

您得到此错误是因为spring boot在启动时找不到AccountServicebean。

NoSuchBeanDefinitionException的[spring-docs][of]解释了

当向BeanFactory请求无法找到定义的bean实例时引发的异常。这可能指向一个不存在的bean、一个非唯一的bean,或者一个没有关联bean定义的手动注册的单例实例。

    null
 类似资料:
  • 我尝试使用Mybatis XML配置实现一个简单的CRUD应用程序已经是第三天了,我对整个Spring生态系统还是新手。这个问题有点长,但我只分享了要点。 我有一个类: 然后我写了一个映射器 在许多教程和解答之后,我创建了一个,文件也在`Resources文件夹中。 在中,我所做的与在文件中所做的几乎相同 以下是项目结构截图: 嵌套异常是org.springframework.beans.fact

  • 启动应用程序上下文时出错。若要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2020-08-05 09:53:05.348 错误 46991 --- [ 主] o.s.boot.Spring 应用程序: 应用程序运行失败 组织.Spring框架.豆子.工厂.不满意依赖性异常:创建名称为“产品控制器”的Bean时出错:通过字段“产品存储库”表示的不满意的依赖关系;嵌套的异常是组织.spri

  • 我有以下代码和结构。我得到以下错误,这是很长的错误消息。 创建名称为'departmentController'的bean时出错:通过字段'departmentService'表示的不满意的依赖项;嵌套异常org.springframework.beans.factory.不满意依赖异常: 实体类 存储库接口 服务等级 控制器类 主课 项目结构 完整错误堆栈跟踪:

  • 当我试图进入主页时,我有以下错误 在我的UserController中,我有以下代码 我的用户服务 我的UserServiceImpl 我的假设 web.xml 我的servlet上下文 根上下文为空。 我不知道哪里是可能的错误原因,我试图找到不同的选项,但如果我使用DAO模式,我会收到相同的错误,所以我想知道哪个是问题来解决它。 该项目的配置使用xml,但我认为解决这种情况并不重要。 问候!

  • 我是Spring和hibernate框架的新手,我已经给出了依赖项上的注释,但是我不知道为什么会出现这个错误。 创建名为“customerController”的bean时出错:通过字段“customerDAO”表示的未满足的依赖关系;嵌套的异常是org。springframework。豆。工厂未满足的依赖项异常:创建名为“customerDAOImpl”的bean时出错:未满足的依赖项通过字段“

  • 以下是跟踪: org.springframework.beans.factory.未满足的DependencyException:创建名称为'testController'的bean时出错:通过字段'testDAO'表示的依赖项未满足;嵌套异常org.springframework.beans.factory.BeanCreationException:创建名称为'testDAO'的bean时出错