加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – Spring @autowired不起作用

发布时间:2020-12-15 01:25:14 所属栏目:大数据 来源:网络整理
导读:我通过注释遇到了弹簧DI问题,这是我的应用: @Servicepublic class Test { @Autowired private GpsPointEntityDao gpsPointEntityDao; public void test() { if (gpsPointEntityDao == null) System.out.println("It's null!n" + gpsPointEntityDao); }} 通

我通过注释遇到了弹簧DI问题,这是我的应用:

@Service
public class Test {

    @Autowired
    private GpsPointEntityDao gpsPointEntityDao;

    public void test() {

        if (gpsPointEntityDao == null)
            System.out.println("It's null!n" + gpsPointEntityDao);

    }
}

通用接口:

public interface GenericDao

具体界面:

public interface GpsPointEntityDao extends GenericDao

抽象实现:

abstract class AbstractGenericDaoJpa

具体课程:

@Repository
public class GpsPointEntityDaoJpa extends AbstractGenericDaoJpa

我的appcontext:

应用程序的结果是:

它是空的!

我一整天都在寻找问题,但没有成功.有人看到问题的地方?

我在日志中发现了这条消息:

INFO  org.springframework.context.support.ClassPathXmlApplicationContext - Bean 'entityManagerFactory' of type [class org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
最佳答案
我没有看到这个问题.使用与您发布的代码大致相同的代码,我运行了这个:

public static void main(String[] args) {
    Test bean = new ClassPathXmlApplicationContext("/applicationContext.xml").getBean(Test.class);
    bean.test();
}

正确注入了测试bean.如果你想看一下,我可以让我的测试项目可用.您确定要获得Test的注入版本吗?你是如何获得它的?

编辑:您的实例未被注入,因为您自己实例化而不是让Spring执行此操作.除非你是use AspectJ to inject objects,否则Spring只会注入它正在管理的对象.当你调用new Test()时,你没有从Spring获取实例,而Spring对你创建的实例一无所知.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读