java的依赖注入_Java依赖注入的三种方式

java的依赖注入_Java依赖注入的三种方式Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:组织方式注入,setter注入,基于注解的注入。组织方式注入组织器注入:保证了一些需要的属性在Bean实例化时就设置,而且确保了bean实例在实例化后就可以使用.1.在类中,不用为属性设置setter方式,只需提供组织方式即可2.在组织文件中设置该类bean,并设置组织器,在设置组织器中用//ApplicationC…

Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:组织方式注入,setter注入,基于注解的注入。

组织方式注入

组织器注入:保证了一些需要的属性在Bean实例化时就设置,而且确保了bean实例在实例化后就可以使用.

1.在类中,不用为属性设置setter方式,只需提供组织方式即可

2.在组织文件中设置该类bean,并设置组织器,在设置组织器中用

//ApplicationContext.xml

提供组织方式

public class UserAction {

private String name;

public UserAction(String name) {

this.name = name;

}

}

setter注入

1.凭据property标签的name属性的值去找对应的setter方式.

例如: name= “aa” 对应的就是setAa方式.

2.由于属性注入具有可选性和灵活性高的优点,是实际上最常用的注入方式.

3.属性注入要求bean提供一个默认的组织函数,并为需要注入的属性提供对应的setter方式.spring先挪用bean默认的组织函数实例化bean工具,然后通过反射机制的方式挪用setter方式注入属性值.

4.另有一点需要注重:若是通过set方式注入属性,那么spring会通过默认的空参组织方式来实例化工具,以是若是在类中写了一个带有参数的组织方式,一定要把空参数的组织方式写上,否则spring没有办法实例化工具,导致报错。

//ApplicationContext.xml

提供setting方式

public class UserAction {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

注解注入

@Autowired(组织,接口,方式)

自动装配,默认凭据类型注入

—属性Required

1.@Autowired(required=true):当使用@Autowired注解的时刻,实在默认就是@Autowired(required=true),示意注入的时刻,该bean必须存在,否则就会注入失败

2.@Autowired(required=false):示意忽略当前要注入的bean,若是有直接注入,没有跳过,不会报错。

3.required属性寄义和@Required一样,只是@Required只适用于基于XML设置的setter注入方式,只能打在setting方式上。

public class AutowiredAction {

private String name;

private List list;

@Autowired

private AutowiredAction(String name) {

this.name=name;

}

public String getName() {

return name;

}

@Autowired

public void setName(String name) {

this.name = name;

}

@Autowired(required = true)

private void initName(String name,List list) {

this.name = name;

this.list = list;

}

}

接口

public interface AutowiredIn {

@Autowired

void initName(String name,Integer age);

}

@Resource 默认根据名称装配

可以标注在字段或属性的setter方式上。默认根据字段的名称去Spring容器中找依赖工具,若是没有找到,退回到根据类型查找

若是设置了属性name

那么只能根据名称找依赖工具

public class ResourceAction {

@Resource(name=”name”)

private String name;

@Resource

private List list;

public String getName() {

return name;

}

@Resource

public void setName(String name) {

this.name = name;

}

public List getList() {

return list;

}

public void setList(List list) {

this.list = list;

}

}

原文链接:https://www.cnblogs.com/blogxu/p/gitzl.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

今天的文章java的依赖注入_Java依赖注入的三种方式分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11397.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注