首页 > 编程语言 >【Java】Spring工具类

【Java】Spring工具类

时间:2024-10-25 13:36:17浏览次数:8  
标签:return name Spring throws static Java 工具 public String

  1 package com.example.demo1.utils.spring;
  2 
  3 import org.springframework.aop.framework.AopContext;
  4 import org.springframework.beans.BeansException;
  5 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
  6 import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
  7 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
  8 import org.springframework.context.ApplicationContext;
  9 import org.springframework.context.ApplicationContextAware;
 10 import org.springframework.stereotype.Component;
 11 import org.springframework.util.StringUtils;
 12 
 13 /**
 14  * spring工具类 方便在非spring管理环境中获取bean
 15  * 
 16  * @author ruoyi
 17  */
 18 @Component
 19 public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware
 20 {
 21     /** Spring应用上下文环境 */
 22     private static ConfigurableListableBeanFactory beanFactory;
 23 
 24     private static ApplicationContext applicationContext;
 25 
 26     @Override
 27     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
 28     {
 29         SpringUtils.beanFactory = beanFactory;
 30     }
 31 
 32     @Override
 33     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
 34     {
 35         SpringUtils.applicationContext = applicationContext;
 36     }
 37 
 38     /**
 39      * 获取对象
 40      *
 41      * @param name
 42      * @return Object 一个以所给名字注册的bean的实例
 43      * @throws BeansException
 44      *
 45      */
 46     @SuppressWarnings("unchecked")
 47     public static <T> T getBean(String name) throws BeansException
 48     {
 49         return (T) beanFactory.getBean(name);
 50     }
 51 
 52     /**
 53      * 获取类型为requiredType的对象
 54      *
 55      * @param clz
 56      * @return
 57      * @throws BeansException
 58      *
 59      */
 60     public static <T> T getBean(Class<T> clz) throws BeansException
 61     {
 62         T result = (T) beanFactory.getBean(clz);
 63         return result;
 64     }
 65 
 66     /**
 67      * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
 68      *
 69      * @param name
 70      * @return boolean
 71      */
 72     public static boolean containsBean(String name)
 73     {
 74         return beanFactory.containsBean(name);
 75     }
 76 
 77     /**
 78      * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
 79      *
 80      * @param name
 81      * @return boolean
 82      * @throws NoSuchBeanDefinitionException
 83      *
 84      */
 85     public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException
 86     {
 87         return beanFactory.isSingleton(name);
 88     }
 89 
 90     /**
 91      * @param name
 92      * @return Class 注册对象的类型
 93      * @throws NoSuchBeanDefinitionException
 94      *
 95      */
 96     public static Class<?> getType(String name) throws NoSuchBeanDefinitionException
 97     {
 98         return beanFactory.getType(name);
 99     }
100 
101     /**
102      * 如果给定的bean名字在bean定义中有别名,则返回这些别名
103      *
104      * @param name
105      * @return
106      * @throws NoSuchBeanDefinitionException
107      *
108      */
109     public static String[] getAliases(String name) throws NoSuchBeanDefinitionException
110     {
111         return beanFactory.getAliases(name);
112     }
113 
114     /**
115      * 获取aop代理对象
116      * 
117      * @param invoker
118      * @return
119      */
120     @SuppressWarnings("unchecked")
121     public static <T> T getAopProxy(T invoker)
122     {
123         return (T) AopContext.currentProxy();
124     }
125 
126     /**
127      * 获取当前的环境配置,无配置返回null
128      *
129      * @return 当前的环境配置
130      */
131     public static String[] getActiveProfiles()
132     {
133         return applicationContext.getEnvironment().getActiveProfiles();
134     }
135 
136     /**
137      * 获取当前的环境配置,当有多个环境配置时,只获取第一个
138      *
139      * @return 当前的环境配置
140      */
141     public static String getActiveProfile()
142     {
143         final String[] activeProfiles = getActiveProfiles();
144         return StringUtils.isEmpty(activeProfiles) ? activeProfiles[0] : null;
145     }
146 
147     /**
148      * 获取配置文件中的值
149      *
150      * @param key 配置文件的key
151      * @return 当前的配置文件的值
152      *
153      */
154     public static String getRequiredProperty(String key)
155     {
156         return applicationContext.getEnvironment().getRequiredProperty(key);
157     }
158 
159 }

 

标签:return,name,Spring,throws,static,Java,工具,public,String
From: https://www.cnblogs.com/luyj00436/p/18502318

相关文章

  • 在Java中如何使用Spring Boot快速开发RESTful服务
    Java中通过SpringBoot快速开发RESTful服务关键步骤包含:1、利用SpringInitializr生成项目框架、2、创建资源表示类(ResourceRepresentationClass)、3、制作资源控制器(ResourceController)、4、编写业务逻辑层(ServiceLayer)、5、集成数据访问层(RepositoryLayer)、6、配置数据库连......
  • 如何在 Java 应用中实现多语言支持?
    在Java应用中实现多语言支持的关键步骤包括使用国际化API、利用资源束(ResourceBundles)、采用外部化字符串、适配不同的文化习惯。最重要的步骤是使用国际化API,这允许开发者创建可以根据用户的地理位置和语言偏好动态改变其内容的应用。Java平台通过`java.util.Locale`类和资源束......
  • 项目管理过程中有什么好的工具
    在项目管理过程中,使用适当的工具可以提高效率和组织性。项目管理过程中好的工具有::1、PingCode;2、Worktile;3、Jira;4、Asana;5、Trello;6、Monday.com;7、ClickUp。比如PingCode是知名的研发项目管理工具,知名客户有:小红书、宁德时代、中科院、中泰证券等。一、PingCode2021年36氪项......
  • 中小企业设备管理流程优化:Spring Boot系统实现
    4系统概要设计4.1概述本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:图4-1系统工作原理图4.2系统结构本系统......
  • 077_基于springboot的个性化课程推荐系统
    目录系统展示开发背景代码实现项目案例 获取源码博主介绍:CodeMentor毕业设计领航者、全网关注者30W+群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AWS/Wired等平台优选内容创作者、深耕Web......
  • 通义千问API—让大模型使用工具
    通义千问API—让大模型使用工具引言通义千问是阿里巴巴推出的一个强大的预训练语言模型,能够生成高质量的文本内容。为了让通义千问更加灵活和实用,我们推出了通义千问API,使开发者能够将大模型与各种工具和服务集成在一起。本文将详细介绍如何使用通义千问API,包括准备工作、......
  • 设备管理智能化:中小企业的Spring Boot系统
    3系统分析3.1可行性分析通过对本中小企业设备管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。3.1.1技术可行性本中小企业设备管理系统采用SpringBoot框架,JAVA作为开发语言,是......
  • Spring Boot框架中小企业设备监控系统开发
    3系统分析3.1可行性分析通过对本中小企业设备管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。3.1.1技术可行性本中小企业设备管理系统采用SpringBoot框架,JAVA作为开发语言,是......
  • 命令行工具cURL 的用法
            cURL(ClientURL)是一个用于在命令行中与URL进行数据传输的工具,广泛用于网络请求和数据交互。它支持多种协议,包括HTTP、HTTPS、FTP、SFTP等。以下是cURL的一些常见用途与功能:1.下载文件你可以使用cURL下载文件到当前目录。例如:curl-Ohttps://exampl......
  • 基于SpringBoot+Vue的学前教育资源共享平台系统网站(源码+LW+调试文档+讲解)
    背景及意义这个题目是关于基于SpringBoot和Vue的学前教育资源共享平台系统网站。该平台旨在为学前教育领域提供一个便捷的资源共享和交流的场所。SpringBoot作为后端框架,能够确保系统的高效运行和稳定性。它可以处理大量的用户请求,管理资源的上传、下载和存储等操作......