1. 字段(属性)注入
- spring framerwork 4.0 后不推荐使用
- 可用注解 @Resource, @Autowired, @Inject
1.1 @Resource 注解
package javax.annotation;
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
public @interface Resource {
}
示例:
@Component
public class UserConfigManager {
@Resource
private UserConfig userConfig;
}
1.2 @Autowired 注解
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
boolean required() default true;
}
示例:
@Component
public class UserConfigManager {
@Autowired
private UserConfig userConfig;
}
注:@Autowired 处有一个黄色的波浪线提示 “Field injection is not recommended”(不推荐使用字段注入)
补充:
@Autowired 是按类型装配的,可通过 @Qualifier(“beanName”) 指定 bean 名称
@Component
public class UserConfigManager {
@Autowired
@Qualifier("userConfig")
private UserConfig userConfig;
}
2. Setter 方法注入
- 优点:可以按需注入
2.1 注解方式
@Component
public class UserConfigManager {
private UserConfig userConfig;
@Resource
public void setUserConfig(UserConfig userConfig) {
this.userConfig = userConfig;
}
2.2 XML 配置方式
3. 构造器注入(推荐)
- 使用构造函数给成员变量赋值
3.1 注解注入
方式一:通过有参构造注入
@Component
public class UserConfigManager {
private UserConfig userConfig;
public UserConfigManager(UserConfig userConfig) {
this.userConfig = userConfig;
}
}
方式二:有参构造注解注入
@Component
@AllArgsConstructor
public class UserConfigManager {
private UserConfig userConfig;
}
3.2 XML 配置方式
无参构造
有参构造
有参构造 – 指定方法
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
© 版权声明
本平台(www.cooy.cn)的一切软件、教程及内容信息仅限用于学习和研究,付费仅为收集整理归类费用;
不得将上述内容用于商业或者非法用途,否则一切后果用户自行承担负责。本平台资源、内容、信息均来自来自用户上传,版权争议及其他问题与本平台无关。
您必须在下载后的24个小时之内从您的电脑或手机中彻底删除上述下载内容,如果您喜欢该程序或内容,请支持正版以获取更好的服务。我们非常重视版权问题,如有侵权请发送邮件至下方邮件(655465@qq.com),敬请谅解!
如发现违法违规内容,请联系下方邮箱举报,我们收到后将会第一时间处理。
THE END
暂无评论内容