@Autowired 是啥,怎么使用呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Autowired 是啥,怎么使用呢?相关的知识,希望对你有一定的参考价值。

是做什么用的呢?应该怎么使用呢?

@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。

扩展资料:

默认情况下,@Autowired 注解意味着依赖是必须的,它类似于 @Required 注解,然而,可以使用 @Autowired 的 (required=false) 选项关闭默认行为。

@Autowired最终是根据类型来查找和装配元素的,但是设置了<beans default-autowire="byName"/>后会影响最终的类型匹配查找。因为在前面有根据BeanDefinition的autowire类型设置PropertyValue值,其中会有新实例的创建和注册。

参考技术A @Autowired是Spring提供的一种注入Bean的方法。
具体的应用是:
1)在Service类中定义的注入属性前加@Autowired。例如:@Autowired private PersonDAO personDAO,
2)必须有个set方法,例如:
@Autowired
public void setPersonDAO(PersonDAO personDAO)
System.out.println("********** @Autowired注入Bean *************");
this.personDAO = personDAO;

Spring配置文件的配置内容:
1) 头部
(加入)xmlns:context="http://www.springframework.org/schema/context"
(添加)xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"
2)
<context:annotation-config/>
<bean id="personDAO" class="edu.syict.dao.impl.PersonDAOImpl"/>
<bean id="personService" class="edu.syict.service.impl.PersonServiceImpl"/>
有问题发信息。本回答被提问者采纳
参考技术B

    @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;

    @Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上。前者,Spring会直接将UserDao类型的唯一一个bean赋值给userDao这个成员变量;后者,Spring会调用setUserDao方法来将UserDao类型的唯一一个bean装配到userDao这个属性。

    Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

|| 是啥意思运营商呢?

【中文标题】|| 是啥意思运营商呢?【英文标题】:What does the || operator do?|| 是什么意思运营商呢? 【发布时间】:2010-10-24 06:09:20 【问题描述】:
Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;

|| 是什么意思这种情况下怎么办? 将 _4 添加到 Attacklab.wmd_env.buttons 数组中?

【问题讨论】:

哇,我花了 7 次尝试才得到正确的标题... ***.com/questions/21367903/… 【参考方案1】:

||运算符检查表达式左侧提供的值是否为假(在布尔上下文中)。如果是这样,则返回表达式右侧指示的替代值。否则返回原始值。

例如,如果 'Foo' 为 null,则以下代码会将其设置为默认值:

富 = 富 || “默认值”

这有时称为合并运算符。 Ruby 和 Perl 等其他语言也支持它。 C# 有 ??做同样事情的运算符。

【讨论】:

所以,有了这个答案,他知道它叫什么,其他语言使用它,甚至 C# 中的不同语法......他仍然不知道它的作用。 好点,我可能应该留下评论。不管怎样,我的答案已经更新了。 +1 表示正确的名称!似乎没有其他 SO 问题/答案想要给出这个......帮助我在 Xquery 中找到了等价物(它让 $foo := ($foo, "default value")[1] 对于任何好奇的人)。【参考方案2】:

JavaScript 中的|| 运算符返回左边的值,如果该值不等于false,否则返回右边的值。

来自Mozilla's Core JavaScript 1.5 Reference:

expr1 || expr2 如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,|| 在任一操作数为真时返回真;如果两者都是 false,则返回 false。

因此,在这种情况下,如果Attacklab.wmd_env.buttons 没有值,它会将值设置为_4

【讨论】:

奇怪的是,MDC 使用了相当模糊的“如果 可以转换为 true,则返回 expr1”。这实际上不是关于“能否被转换”,而是关于返回的值表达式。【参考方案3】:

这是一种奇特的写作方式

if(!Attacklab.wmd_env.buttons)
    Attacklab.wmd_env.buttons = _4;

提供默认值很好。请记住,不仅nullundefined 将触发条件,而且0false'',即在布尔上下文中被视为false 的所有内容。

【讨论】:

@kangax:是的,这是列表中唯一缺少的东西(参见 ECMA-262,第 9.2 节)【参考方案4】:

如果Attacklab.wmd_env.buttonsnullundefined,它将被设置为默认值_4

【讨论】:

以上是关于@Autowired 是啥,怎么使用呢?的主要内容,如果未能解决你的问题,请参考以下文章

面试官:@Autowired, @Resource, @Inject 三个注解的区别?一下懵了。。。

Autowired和Resource关键字的区别?

Spring中@autowired注释的用途是啥。术语自动装配是啥意思[重复]

Arouter 源码学习 1

@Autowired idea 警告

usb debugging是啥意思呢?怎么才能启用呢?