/**** * 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; } }
相关推荐
这可以通过实现Spring的`ApplicationContextAware`接口或者使用`@Component`注解来完成。 接下来,我们需要在Struts2的配置文件`struts.xml`中声明Action,但不再创建Action的实例,而是指定Spring管理的Bean ID。...
本文将详细介绍如何在Spring中通过`ApplicationContext`的`getBean`方法获取注入对象,并通过实例来展示其使用。 首先,我们来看`ApplicationContextAware`接口,它是Spring提供的一个回调接口。当Spring容器创建了...
在实际应用中,接口常用于设计模式,如策略模式、观察者模式等,以及在框架设计中,比如Spring框架中的`ApplicationContextAware`接口,它允许类感知并访问Spring的应用上下文。 总的来说,Java接口提供了定义行为...
`ApplicationContextAware`是其中的一个典型接口,当我们想要在非托管类(即非Spring Bean)中获取Spring容器中的其他Bean时,可以使用这个接口。 `ApplicationContextAware`接口提供了`setApplicationContext`方法...
在获取所有拥有特定注解的Bean实例代码时,需要注意的是,ApplicationContextAware接口不能用来获取所有Bean的实例,因为setApplicationContext方法不是在所有Bean初始化完成后实现的。 Spring启动后获取所有拥有...
在Spring中,我们可以利用`ApplicationContextAware`接口来获取到`ApplicationContext`,然后使用`AutowireCapableBeanFactory`的`autowireBean()`方法对目标对象进行进一步的初始化操作。例如: ```java public ...
- **实例工厂方法实例化**:通过调用一个非静态工厂方法来创建Bean实例。 #### 三、依赖 - **依赖注入** - **基于构造函数的依赖注入**:依赖项在构造函数中传递,确保了Bean的不可变性。 - **基于setter的依赖...
通过使用 SpringContextUtil 这个工具类,可以动态获取 Bean 实例,提高了项目的灵活性和可维护性。 动态注入 Bean 实例是 Spring 框架中非常重要的一部分,通过理解和掌握这些知识点,可以更好地应用 Spring 框架...
④ 如果 Bean 实现 BeanFactoryAware 或者 ApplicationContextAware 设置工厂 setBeanFactory 或者上下文对象 setApplicationContext ⑤ 如果存在类实现 BeanPostProcessor(后处理 Bean),执行 ...
实例化IoC容器是使用Spring框架的第一步。可以通过`ApplicationContext`或`BeanFactory`接口来实例化容器。其中,`ApplicationContext`提供了更多的功能,如资源加载、消息国际化等。 - **基于XML的配置元数据...
在企业级应用开发中,Java和Spring框架是广泛使用的工具,尤其在管理Bean的生命周期方面。理解Bean的生命周期对于优化应用程序性能和实现高效资源管理至关重要。以下是对标题和描述中涉及知识点的详细说明: 1. **...
自定义作用域需要实现ApplicationContextAware接口来获取ApplicationContext,并通过实现Scope接口来定义作用域的行为。 理解并正确使用Bean的作用域是优化Spring应用程序性能和资源管理的关键。选择合适的作用域...
在使用 JwtTokenFilter 过滤器时,可以使用 SpringContextUtil 获取 JwtTokenFilter 实例: ```java JwtTokenFilter jwtTokenFilter = SpringContextUtil.getBean(JwtTokenFilter.class); ``` 五、结论 本文详细...
- **示例**: 在XML配置的基础上,可以使用`ClassPathXmlApplicationContext`类加载配置文件并实例化容器。 - **1.2.3 使用容器**: 创建容器后,可以通过容器获取Bean实例,并利用其提供的各种服务,如依赖注入、...
- Aware接口:包括BeanNameAware、BeanClassLoaderAware、BeanFactoryAware、EnvironmentAware、EmbeddedValueResolverAware和ApplicationContextAware等。这些接口允许Bean获取容器的相关信息,如Bean的名称、类...
- 介绍了几种实例化bean的方法,如使用构造方法、静态工厂方法和实例工厂方法。 **4.4 依赖** - **4.4.1 依赖注入** - 包括了基于构造方法和基于setter方法的依赖注入。 - 介绍了依赖注入的过程和示例。 - **...
本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...
使用depends-on属性可以明确指定一个或多个Bean依赖其他Bean,以确保依赖的Bean优先于其他Bean实例化或销毁。 1.4.4 懒加载Bean 默认情况下,Spring在启动时创建和配置Bean。但有时Bean的创建可能会被延迟到第一次...
在Spring容器中,Bean的生命周期还包括容器感知的初始化和销毁,例如ApplicationContextAware接口允许Bean获取到容器引用,而ApplicationEventPublisherAware接口使Bean能够发布和监听应用事件。 总的来说,Spring ...
使用`ApplicationContext`的`getBean(String name)`方法可以直接根据Bean的定义名称获取到对应的实例。例如: ```java ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); MyBean ...