博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 获取对象方式
阅读量:6029 次
发布时间:2019-06-20

本文共 2745 字,大约阅读时间需要 9 分钟。

1 通过配置文件注入

1.配置文件里配置注入信息

2.class中加入注解的接口(set get、 构造函数等)

2.通过注解方式获得

1. 在class中对方法加入注解信息 (类标示 :@Service 、@Repository  ;  注入标示:@Resource) 

3. 在spring环境中获取对象(从web环境中获取)

WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());SystemUserDao systemUserDao  = (SystemUserDao)webApplicationContext.getBean("systemUserDao");

4. 怎样在方法中使用getBean(从web环境中获取)

当想在service方法中直接通过bean名称获取对象时,一种方法是加入request參数(这样就能使用web环境中的spring环境了)。只是在service方法中有request參数明显不是一种非常好的方法(不利于測试)。另外一种方法则加入一个SpringContent工具类。使用一个静态变量存储spring对象环境。在使用之前设置这个变量(web环境能够加入filter、在測试环境也能够对其进行社会自),详细使用的时候则直接使用就可以。
工具类代码:
package eway.flight.service;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;/** * @Title: SpringContextUtil.java * @Package eway.flight.utils * @Description: TODO(加入描写叙述) * @author A18ccms A18ccms_gmail_com * @date 2014-8-18 下午1:56:54 * @version V1.0 */public class SpringContextUtil implements ApplicationContextAware {	 private static ApplicationContext applicationContext;     //Spring应用上下文环境	 	 	 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);	 }	 	 	 public static Object getBean(String name, Class requiredType) throws BeansException {	   return applicationContext.getBean(name, requiredType);	 }	 	 	 public static boolean containsBean(String name) {	   return applicationContext.containsBean(name);	 }	 	 	 public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {	   return applicationContext.isSingleton(name);	 }	 	 	 public static Class getType(String name) throws NoSuchBeanDefinitionException {	   return applicationContext.getType(name);	 }	 	 	 public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {	   return applicationContext.getAliases(name);	 }	}
web初始化时设置
public void doFilter(ServletRequest request, ServletResponse response,			// 设置静态 spring 对象			ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());			SpringContextUtil springContextUtil = new SpringContextUtil();			springContextUtil.setApplicationContext(ctx);   									chain.doFilter(request, response);	}
业务代码
FlowCommItf command= (FlowCommItf)SpringContextUtil.getBean("flowComm_JSYSS");

转载地址:http://otzhx.baihongyu.com/

你可能感兴趣的文章
关于向Mybatis传递多个参数进行SQL查询的用法
查看>>
mongodb 安装
查看>>
光纤组网基础知识 (2) - 光纤跳线、尾纤、连接器、法兰盘、耦合器
查看>>
fedora上ARM-LINUX-GCC 编译器安装
查看>>
查看dev下设备名的含义
查看>>
Oracle 触发器(上)
查看>>
Android 数据库基本操作-2
查看>>
html5学习笔记1
查看>>
函数的扩展
查看>>
Linxu命令
查看>>
Linux下使用Google Authenticator配置SSH登录动态验证码
查看>>
js星级评价
查看>>
ORACLE分区表详解
查看>>
SNI
查看>>
我的友情链接
查看>>
開發平臺/二次開發
查看>>
浅谈RGB
查看>>
磁盘及文件系统管理(三)
查看>>
centos6_64位系统安装部署puppet(master、agent)
查看>>
IPCONFIG命令详解
查看>>