java - @Autowired应该怎么用?
巴扎黑
巴扎黑 2017-04-18 09:16:37
[Java讨论组]

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

@Autowired
private UserRepository userRepository;

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

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

private UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

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

巴扎黑
巴扎黑

全部回复(6)
伊谢尔伦

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

PHP中文网

Spring bean通过@Autowired注入,spring auto scan配置,在编辑情况下,无法找不到对应的bean,于是提示找不到对应bean的错误。

但build项目是能正常运行的。

可在File -- Settings -- Inspections。在Spring Model -- Autowring for Bean Class 中,

将Severity的级别由之前的error改成warning或者直接取消提醒。

高洛峰

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

伊谢尔伦

你的写法是没错的,找不到bean的话,可能是配置的问题,在applicationContext.xml里需要有下面的配置语句:

<context:component-scan base-package="需要自动扫描的包" />
ringa_lee

1.属性上加这个,就是IOC的应用了,spring通过配置文件,来帮你装配bean对象进来。
2.@Autowired加在方法上的时候,Spring会先实例化所有Bean,然后根据配置进行扫描,当检测到@Autowired后进行注入,注入时调用这个方法。

天蓬老师

楼上正解!!!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号