Spring ApplicationContextAware

来源:互联网 发布:java刚培训工资 编辑:程序博客网 时间:2024/04/29 04:59

 ApplicationContextAware 接口 见名知意,即可以感知到ApplicationContext的接口;

 它是Spring提供的可以获取到ApplicationContext的接口,通过setApplicationContext(ApplicationContext applicationContext)自动将applicationContext注入进来。

 通过获取到ApplicationContext 实现了ApplicationContextAware接口的类就可以获取到Spring容器中所有的bean。

 一般的使用情景也就两种:

 1.在Java Project中使用;

 2.在Java Web中使用。

 无论是哪种,都要将Spring的ApplicationContext得到,在Java Web工程中,通过ContextLoaderListener就可以得到。

 而在Java Project中,则必须显示获得了:ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring-application.xml");


public class AppMain {static{LoadApplicationContext.loadApplicationContext();}public static void main(String[] args) {Person person = SpringUtil.getBean("person");if(person != null){System.out.println(person.getName());}}}



public class LoadApplicationContext {public static void loadApplicationContext() {ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring-application.xml");}}



public class SpringUtil implements ApplicationContextAware{private static ApplicationContext ctx;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {ctx = applicationContext;}@SuppressWarnings("unchecked")public static <T> T getBean(String beanName){if(ctx == null){System.out.println("ctx is null");}return (T) ctx.getBean(beanName);}}



0 0
原创粉丝点击