你好,我在做一个简单的spring应用程序,由于某种原因出现了这个错误:
类型不匹配:无法从对象转换为accountdao
我有三节课,分别是:
package com.luv2code.aopdemo.dao;
import org.springframework.stereotype.Component;
@Component
public class AccountDAO {
public void addAccount() {
System.out.println(getClass() + ": DOING MY DB WORK: ADDING AN ACCOUNT");
}
}
演示配置:
package com.luv2code.aopdemo;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@Configuration
@EnableAspectJAutoProxy
@ComponentScan("com.luv2code.aopdemo")
public class DemoConfig {
}
和maindemoapp:
package com.luv2code.aopdemo;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.luv2code.aopdemo.dao.AccountDAO;
public class MainDemoApp {
public static void main(String[] args) {
//read spring config java class
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DemoConfig.class);
//get the bean from spring container
AccountDAO theAccountDAO = context.getBean("accountDAO", AccountDAO.class); //THE PROBLE IS HERE
//call the business method
theAccountDAO.addAccount();
//close the context
context.close();
}
}
错误在maindemoapp中的accountdao theaccountdao=context.getbean(“accountdao”,accountdao.class)(只有后面的部分是红色的)
3条答案
按热度按时间jq6vz3qz1#
你能试试这个吗:
AccountDAO theAccountDAO = (AccountDAO) context.getBean("accountDAO", AccountDAO.class);
brc7rcf02#
尝试
context.refresh()
之前context.getBean(...)
打电话,如果没有帮助,请执行以下操作:注解
MainDemoApp.java
与@SpringBootApplication
.删除
@ComponentScan
从DemoConfig
创建@Bean
明确地。在调试模式下启动,查看是否点击bean创建
AccountDAO
.k75qkfdt3#
我一直试图从buildpath中一个接一个地删除(如果没有任何更改,则读取)一个库,只是为了尝试,即使我不知道会有什么效果。删除org.springframework.context.jar后,错误消失了。
哈哈。有人能解释一下吗?