Skip to content

Commit 844b4dc

Browse files
committed
add BeanAccessor
1 parent 85fd9b7 commit 844b4dc

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package it.aboutbits.springboot.testing.spring;
2+
3+
import lombok.NonNull;
4+
import org.springframework.context.ApplicationContext;
5+
import org.springframework.context.ApplicationContextAware;
6+
import org.springframework.stereotype.Component;
7+
8+
@Component
9+
public class BeanAccessor implements ApplicationContextAware {
10+
private static ApplicationContext applicationContext;
11+
12+
public static <T> T getBean(@NonNull Class<T> clazz) {
13+
if (applicationContext == null) {
14+
throw new IllegalStateException("ApplicationContext is not set. Did you @EnableBeanAccessor?");
15+
}
16+
return applicationContext.getBean(clazz);
17+
}
18+
19+
@Override
20+
public void setApplicationContext(@NonNull ApplicationContext applicationContext) {
21+
BeanAccessor.applicationContext = applicationContext;
22+
}
23+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package it.aboutbits.springboot.testing.spring;
2+
3+
import org.springframework.context.annotation.Import;
4+
5+
import java.lang.annotation.ElementType;
6+
import java.lang.annotation.Retention;
7+
import java.lang.annotation.RetentionPolicy;
8+
import java.lang.annotation.Target;
9+
10+
@Target({ElementType.TYPE})
11+
@Retention(RetentionPolicy.RUNTIME)
12+
@Import(BeanAccessor.class)
13+
public @interface EnableBeanAccessor {
14+
}

0 commit comments

Comments
 (0)