处理自动装配的歧义性
来源:互联网 发布:深圳阿里云大厦图片 编辑:程序博客网 时间:2024/09/15 11:17
spring的自动装备Autowired默认是根据类型查找的,如果有俩个同类型的bean,则会出现异常。此时有俩种方法解决:
1:设置首选bean,在声明bean的同时声明为首选bean,
@Component
@Primary
public SuperMan implements Person{
}
@Component
public LazyMan implements Person{
}
这样在自动装配的时候会首先选择SuperMan。
2.创建自定义的限定符:
@Configuration
@ComponentScan(“com.kai.vo”)
@PropertySource(“app.properties”)
public class Configuration1 {
@Bean
@Qualifier(“super”)
public Person superman(){
return new SuperMan();
}
@Bean
@Qualifier(“lazy”)
public Person lazyman(){
return new LazyMan();
}
@Component public class Company { public Person person; @Autowired @Qualifier("super") public void set(Person person){ this.person=person; } public void print(){ System.out.println("company "+person.getName()); } } </code>
3. 或者自定义一个新的注解:
@Target({ElementType.CONSTRUCTOR,ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface Super {
@Target({ElementType.CONSTRUCTOR,ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Qualifierpublic @interface Lazy {} @Configuration@ComponentScan("com.kai.vo")@PropertySource("app.properties")public class Configuration1 { @Bean @Super public Person superman(){ return new SuperMan(); } @Bean @Lazy public Person lazyman(){ return new LazyMan(); }
}
@Target取值有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
@Retention表示注解被保留时间长短:
1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class保留)
3.RUNTIME:在运行时有效(即运行时保留)
- Spring-处理自动装配的歧义性
- spring处理自动装配的歧义性
- 十四、处理自动装配的歧义性
- 处理自动装配的歧义性
- 处理自动装配的歧义性
- Spring学习笔记之处理自动装配的歧义性
- spring--bean自动装配的歧义性
- 高级装配 —— 如何处理自动装配的歧义性?
- SpringInAction 学习笔记:自动装配歧义性处理
- Spring journey -- 处理自动装配歧义性问题
- Spring中Bean装配的歧义性
- Spring 全注解配置 bean 和 调用 (4) @Primary 自动装配歧义性
- Spring 全注解配置 bean 和 调用 (5) @Qualifier 自动装配歧义性消除
- Spring 全注解配置 bean 和 调用 (6) 自定义注解 自动装配歧义性消除
- 多重继承的歧义性
- 脑筋急转弯的歧义性
- SPRING的自动装配
- spring的自动装配
- winform 利用线程 实现窗体图片轮播
- 微信红包(数组中出现次数大于一半的数)
- win7默认网关不可用怎么修复 win7默认网关不可用的快速解决方法
- 5分钟掌握智联招聘网站爬取并保存到MongoDB数据库
- 动态规划——钢条切割
- 处理自动装配的歧义性
- C语言之文件重定向学习笔记
- 簇和簇表+簇+簇表+创建簇+创建簇表
- Java中保留字和关键字的区别
- 前端极限性能优化
- Count and Say
- 公司里用FOXMAIL7帐号访问口令忘记处理方法
- ScalaNLP-breeze&breeze-viz总结
- android 带清除功能的输入框控件