當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot笔记-通过反射获取Spring Boot中的Bean(反射调用Service)
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot笔记-通过反射获取Spring Boot中的Bean(反射调用Service)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
繼承ApplicationContextAware獲取ApplicationContext:
package com.xxxx.xxxx.bean;import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Configuration;@Configuration public class SpringContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {SpringContextUtil.applicationContext = applicationContext;}public static Object getBean(String name) throws BeansException{return applicationContext.getBean(name);} }這樣創造一個工具類即可獲取Spring Boot管理的各種Bean。
比如下面這個Service接口:
實現如下:
Controller如下:
這里獲取了tableName后,解析tableName的字符串,然后通過反射直接調用service。
EntityAnalys.java如下:
package com.xxxx.xxxx.utils;import com.xxxx.xxxx.bean.SpringContextUtil;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;public class EntityAnalyse {public static Object getAllObject(String tableName, String methodName) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {String tName = tableName + "ServiceImpl";Class cls = SpringContextUtil.getBean(tName).getClass();Method m = cls.getDeclaredMethod(methodName);Object invoke = m.invoke(SpringContextUtil.getBean(tName));return invoke;}public static Object getOneObjectByID(String tableName, String methodName, String id) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {String tName = tableName + "ServiceImpl";Class cls = SpringContextUtil.getBean(tName).getClass();Method m = cls.getDeclaredMethod(methodName, String.class);Object invoke = m.invoke(SpringContextUtil.getBean(tName), id);return invoke;} }?
總結
以上是生活随笔為你收集整理的Spring Boot笔记-通过反射获取Spring Boot中的Bean(反射调用Service)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL笔记-左连接的使用(left
- 下一篇: Windows核心思想-宽字符与窄字符(