Spring ApplicationContextAware获取上下文
2024-08-26 18:06:11
一、ApplicationContextAware 用处
Spring 提供了ApplicationContextAware类,通过它可以获取所有bean上下文。
二、怎么用?
①、定义一个工具类,去实现 ApplicationContextAware,实现 setApplicationContext方法即可
public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; // Spring应用上下文环境 @Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
} /**
* 获取对象
*
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws BeansException
*/
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
} }
②、业务代码
public interface UserReadService { public UserInfo getUserInfoById(Long id);
} @Component("userReadService")
public class UserReadServiceImpl implements UserReadService { @Override
public UserInfo getUserInfoById(Long id) {
System.out.println("获取用户信息");
return null;
} }
③、xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd"> <context:annotation-config />
<!--自动扫描含有@Service将其注入为bean -->
<context:component-scan base-package="com.mycompany.yuanmeng.springdemo.aop" /> <bean id="springContextUtil" class="com.mycompany.yuanmeng.springdemo.aop.SpringContextUtil" /> </beans>
④、test
public static void test() { new ClassPathXmlApplicationContext("spring.xml"); // 加载ApplicationContext(模拟启动web服务), 当然如果是用web工程的话,可以直接在web.xml配置,容器会去加载此文件。 UserReadService userReadService = (UserReadService) SpringContextUtil.getBean("userReadService"); userReadService.getUserInfoById(null);
}
最新文章
- 个人也能申请微信小程序获得APPID和手机测试效果
- 如何在插件中添加Actor类
- Entity Framework Code First (五)Fluent API - 配置关系
- PHP 调用Python脚本
- Git 常用命令整理
- clumsy 0.1 测试工具(延迟\掉包\节流\重发\乱序\篡改)
- 用javascript协助导入图片
- ExtJs学习笔记之ComboBox组件
- hibernate 查询
- javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】
- STS搭建SpringBoot项目
- jQuery滑动开关按钮效果
- XamarinSQLite教程在Xamarin.Android项目中提取数据库文件
- IkAnalyzer2012FF_u1.jar免费下载
- TeamWork#1,Week 5,Suggestions for Team Project
- P1896 [SCOI2005]互不侵犯
- 【原创】user.id字段
- angularjs中的$eval方法
- java线程-synchronized实现可见性代码
- Python小知识点(3)--装饰器
热门文章
- Rails中的MIME类型
- flask开发遇到Internal Server Error的解决办法
- UVa 11054 Wine trading in Gergovia
- 20款最优秀的JavaScript编辑器
- [.NET MVC进阶系列03] Views 视图基础
- C# List 使用方法 支持FrameWork2.0 环境
- php网页显示正方形图片缩略图
- Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用
- 【转】第一个Linux内核驱动程序
- javascript六难题