`

ApplicationContextAware使用实例

 
阅读更多
/****
 * SpringContext 上下文
 * 通过SpringContext获取Spring管理的业务Bean对象
 * 
 * @author 万文俊
 *
 */
public class SpringContextUtil implements ApplicationContextAware {
	
	private static ApplicationContext applicationContext;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		SpringContextUtil.applicationContext = applicationContext;
	}
	
	public static ApplicationContext getApplicationContext() {  
        return applicationContext;  
    }  
      
    public static Object getBean(String name) throws BeansException {  
        return applicationContext.getBean(name);  
    }  

}

 

	<!-- 注入SpringContext 工具类 -->
	<bean id="springContextUtil" class="spring.fm.SpringContext"></bean>

 

	<!-- 测试获取数据 -->
	<bean id="student" class="spring.lei.Student">
		<property name="id" value="id89575"></property>
		<property name="name" value="zhou"></property>
		<property name="sex" value="男"></property>
	</bean>

 

public class Student {
	
	public Student(){
		System.out.println("Student实例化");
	}
	
	private String id;
	
	private String name;
	
	private String sex;
	
	private int age;
	
	public String toString(){
		return "student [id=" + id + ", name=" + name + ", sex=" + sex + "]";
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

 

@Controller
public class Springcontroller {
	
	/***
	 * 返回类型是string需要用produces进行转码,并格式化
	 * json格式化 可以用Gson处理(obj <-> json)互相转换
	 * @return
	 * @date 2017年5月12日
	 * @author wanwenjun
	 */
	@RequestMapping(value="/stu",produces="application/json; charset=utf-8")
	@ResponseBody
	public String getStudent(){
		
		Student s = (Student) SpringContext.getBean("student");
		
		Gson gson = new Gson();
		
		//obj to String
		String stu = gson.toJson(s);
		
		//String to obj
		Student s2 = gson.fromJson(stu,Student.class);
		
		System.out.println(s2.toString());
		
		return stu;
	}
}

 

分享到:
评论

相关推荐

    struts2+spring实例

    这可以通过实现Spring的`ApplicationContextAware`接口或者使用`@Component`注解来完成。 接下来,我们需要在Struts2的配置文件`struts.xml`中声明Action,但不再创建Action的实例,而是指定Spring管理的Bean ID。...

    spring中通过ApplicationContext getBean获取注入对象的方法实例

    本文将详细介绍如何在Spring中通过`ApplicationContext`的`getBean`方法获取注入对象,并通过实例来展示其使用。 首先,我们来看`ApplicationContextAware`接口,它是Spring提供的一个回调接口。当Spring容器创建了...

    java 接口 代码实例

    在实际应用中,接口常用于设计模式,如策略模式、观察者模式等,以及在框架设计中,比如Spring框架中的`ApplicationContextAware`接口,它允许类感知并访问Spring的应用上下文。 总的来说,Java接口提供了定义行为...

    spring-aware接口实现与bean作用域(spring多容器层面)

    `ApplicationContextAware`是其中的一个典型接口,当我们想要在非托管类(即非Spring Bean)中获取Spring容器中的其他Bean时,可以使用这个接口。 `ApplicationContextAware`接口提供了`setApplicationContext`方法...

    Spring启动后获取所有拥有特定注解的Bean实例代码

    在获取所有拥有特定注解的Bean实例代码时,需要注意的是,ApplicationContextAware接口不能用来获取所有Bean的实例,因为setApplicationContext方法不是在所有Bean初始化完成后实现的。 Spring启动后获取所有拥有...

    spring强行注入和引用实例解析

    在Spring中,我们可以利用`ApplicationContextAware`接口来获取到`ApplicationContext`,然后使用`AutowireCapableBeanFactory`的`autowireBean()`方法对目标对象进行进一步的初始化操作。例如: ```java public ...

    spring core官方文档.pdf

    - **实例工厂方法实例化**:通过调用一个非静态工厂方法来创建Bean实例。 #### 三、依赖 - **依赖注入** - **基于构造函数的依赖注入**:依赖项在构造函数中传递,确保了Bean的不可变性。 - **基于setter的依赖...

    Spring中如何动态注入Bean实例教程

    通过使用 SpringContextUtil 这个工具类,可以动态获取 Bean 实例,提高了项目的灵活性和可维护性。 动态注入 Bean 实例是 Spring 框架中非常重要的一部分,通过理解和掌握这些知识点,可以更好地应用 Spring 框架...

    架构师面试题系列之Spring面试专题及答案(41题).docx

    ④ 如果 Bean 实现 BeanFactoryAware 或者 ApplicationContextAware 设置工厂 setBeanFactory 或者上下文对象 setApplicationContext ⑤ 如果存在类实现 BeanPostProcessor(后处理 Bean),执行 ...

    Spring Reference Core Technologies

    实例化IoC容器是使用Spring框架的第一步。可以通过`ApplicationContext`或`BeanFactory`接口来实例化容器。其中,`ApplicationContext`提供了更多的功能,如资源加载、消息国际化等。 - **基于XML的配置元数据...

    基于java的企业级应用开发:Bean的生命周期.ppt

    在企业级应用开发中,Java和Spring框架是广泛使用的工具,尤其在管理Bean的生命周期方面。理解Bean的生命周期对于优化应用程序性能和实现高效资源管理至关重要。以下是对标题和描述中涉及知识点的详细说明: 1. **...

    spring的bean作用域

    自定义作用域需要实现ApplicationContextAware接口来获取ApplicationContext,并通过实现Scope接口来定义作用域的行为。 理解并正确使用Bean的作用域是优化Spring应用程序性能和资源管理的关键。选择合适的作用域...

    Spring Boot 自定义 Shiro 过滤器无法使用 @Autowired问题及解决方法

    在使用 JwtTokenFilter 过滤器时,可以使用 SpringContextUtil 获取 JwtTokenFilter 实例: ```java JwtTokenFilter jwtTokenFilter = SpringContextUtil.getBean(JwtTokenFilter.class); ``` 五、结论 本文详细...

    spring-core.pdf

    - **示例**: 在XML配置的基础上,可以使用`ClassPathXmlApplicationContext`类加载配置文件并实例化容器。 - **1.2.3 使用容器**: 创建容器后,可以通过容器获取Bean实例,并利用其提供的各种服务,如依赖注入、...

    Spring Bean生命周期.pdf

    - Aware接口:包括BeanNameAware、BeanClassLoaderAware、BeanFactoryAware、EnvironmentAware、EmbeddedValueResolverAware和ApplicationContextAware等。这些接口允许Bean获取容器的相关信息,如Bean的名称、类...

    spring3.1中文参考文档

    - 介绍了几种实例化bean的方法,如使用构造方法、静态工厂方法和实例工厂方法。 **4.4 依赖** - **4.4.1 依赖注入** - 包括了基于构造方法和基于setter方法的依赖注入。 - 介绍了依赖注入的过程和示例。 - **...

    获取spring容器的方法

    本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...

    Spring Reference - Core Technologies.pdf

    使用depends-on属性可以明确指定一个或多个Bean依赖其他Bean,以确保依赖的Bean优先于其他Bean实例化或销毁。 1.4.4 懒加载Bean 默认情况下,Spring在启动时创建和配置Bean。但有时Bean的创建可能会被延迟到第一次...

    Spring part 2 :Bean的生命周期

    在Spring容器中,Bean的生命周期还包括容器感知的初始化和销毁,例如ApplicationContextAware接口允许Bean获取到容器引用,而ApplicationEventPublisherAware接口使Bean能够发布和监听应用事件。 总的来说,Spring ...

    Spring在应用中获得Bean的方法

    使用`ApplicationContext`的`getBean(String name)`方法可以直接根据Bean的定义名称获取到对应的实例。例如: ```java ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); MyBean ...

Global site tag (gtag.js) - Google Analytics