Springコレクションタイプ依存検索
コレクションタイプ依存検索インタフェース-LitableBeanFactory Beanタイプに従って検索 同じタイプのBean名のリストを取得 getBeanNamesForType(Class) getBeanNamesForType(ResolvableType)
同じタイプのBeanインスタンスのリストを取得 getBeansOfType(Class)およびリロード方法
注釈タイプで検索 寸法タイプBean名リストの取得 getBeanNamesForAnnotation
寸法タイプBeanインスタンスリストの取得 getBeansWithAnnotation
指定名+寸法タイプBeanインスタンスの取得 findAnnotationOnBean
SuperRumenz.java/Rumenz.java
ケース
しゅつりょく
ソース:https://github.com/mifunc/Spr...
原文:https://rumenz.com/rumenbiji/Spring-Collection-Dependent-Lookup.html
SuperRumenz.java/Rumenz.java
//SuperRumenz.java
package com.rumenz;
public class SuperRumenz {
private String key;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
@Override
public String toString() {
return "SuperRumenz{" +
"key='" + key + '\'' +
'}';
}
}
//Rumenz.java
package com.rumenz;
public class Rumenz extends SuperRumenz{
private Integer id;
private String name;
@Override
public String toString() {
return "Rumenz{" +
"id=" + id +
", name='" + name + '\'' +
"} " + super.toString();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ケース
package com.rumenz;
public class DemoApplication {
public static void main(String[] args) {
AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();
ac.register(DemoApplication.class);
ac.refresh();
// (SuperRumenz.class) Beand
Map map = ac.getBeansOfType(SuperRumenz.class);
map.forEach((k,v)->{
System.out.println(String.format("k %s v %s",k,v));
});
// (SuperRumenz.class) Bean
String[] beanNames = ac.getBeanNamesForType(SuperRumenz.class);
Arrays.asList(beanNames).stream().forEach(System.out::println);
// Bean
String[] annotationBeanNames = ac.getBeanNamesForAnnotation(Bean.class);
Arrays.asList(annotationBeanNames).stream().forEach(System.out::println);
// Bean
Map map1 = ac.getBeansWithAnnotation(Bean.class);
map1.forEach((k1,v1)->{
System.out.println(String.format("k1 %s v1 %s",k1,v1));
});
// Bean ,
Bean bean = ac.findAnnotationOnBean("superRumenz", Bean.class);
if(bean!=null){
System.out.println(ac.getType("superRumenz"));
}
ac.close();
}
@Bean
public Rumenz rumenz(){
Rumenz rumenz = new Rumenz();
rumenz.setId(123);
rumenz.setName(" ");
return rumenz;
}
@Bean
public SuperRumenz superRumenz(){
SuperRumenz sr = new SuperRumenz();
sr.setKey(" ");
return sr;
}
}
しゅつりょく
k rumenz v Rumenz{id=123, name=' '} SuperRumenz{key='null'}
k superRumenz v SuperRumenz{key=' '}
rumenz
superRumenz
rumenz
superRumenz
k1 rumenz v1 Rumenz{id=123, name=' '} SuperRumenz{key='null'}
k1 superRumenz v1 SuperRumenz{key=' '}
class com.rumenz.SuperRumenz
ソース:https://github.com/mifunc/Spr...
原文:https://rumenz.com/rumenbiji/Spring-Collection-Dependent-Lookup.html