@Autowired应该怎么用?

好像一般书上都是这么用的


@Autowired

private UserRepository userRepository;

我写的时候运行是没问题的,但是IntelliJ会标红,说找不到bean什么的


看Spring.io的源码的时候发现人家是这么写的


private UserRepository userRepository;


    @Autowired

    public UserService(UserRepository userRepository) {

        this.userRepository = userRepository;

    }

写在构造方法上的,新手表示不解,应该怎么写,求指教


慕森卡
浏览 1605回答 5
5回答

三国纷争

如果是mybatis或dubbo这类框架,由于其bean提供方式有点不同,所以IDEA的静态检查并不能感知到bean被注入了,所以显示红色波浪线,关掉这个提示就好了。

富国沪深

Spring bean通过@Autowired注入,spring auto scan配置,在编辑情况下,无法找不到对应的bean,于是提示找不到对应bean的错误。但build项目是能正常运行的。可在File -- Settings -- Inspections。在Spring Model -- Autowring for Bean Class 中,将Severity的级别由之前的error改成warning或者直接取消提醒。

BIG阳

Spring注入的方式有多种,可以写在field上,可以写在setter方法上,可以写在constructor上。你使用的方式是写在了field上,你看到的是写在了constructor上

一只斗牛犬

你的写法是没错的,找不到bean的话,可能是配置的问题,在applicationContext.xml里需要有下面的配置语句:<context:component-scan&nbsp;base-package="需要自动扫描的包"&nbsp;/>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java