普通的java类获取spring 的bean配置

这个问题困扰了我2天终于找到原因了,原来是少了在xml文件中的配置。

 

如下是在网上找到的5中获取spring 中bean的方式总结:

方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。

方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。

上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。

方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。

方法四:继承自抽象类WebApplicationObjectSupport
说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext

方法五:实现接口ApplicationContextAware
说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。
Spring初始化时,会通过该方法将ApplicationContext对象注入。

 

虽然,spring提供了后三种方法可以实现在普通的类中继承或实现相应的类或接口来获取spring 的ApplicationContext对象,但是在使用是一定要注意实现了这些类或接口的普通java类一定要在Spring 的配置文件application-context.xml文件中进行配置。否则获取的ApplicationContext对象将为null。

 

如下是我实现了ApplicationContextAware接口的例子

package quartz.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class SpringConfigTool implements ApplicationContextAware{//extends ApplicationObjectSupport{
 
 private static ApplicationContext context = null;
 private static SpringConfigTool stools = null;
 public synchronized static SpringConfigTool init(){
  if(stools == null){
   stools = new SpringConfigTool();
  }
  return stools;
 }
 
 public void setApplicationContext(ApplicationContext applicationContext)
 throws BeansException {
  context = applicationContext;
 }

 public synchronized static Object getBean(String beanName) {
  return context.getBean(beanName);
 }

}

 

XML文件中的配置信息:(一定要加上这段内容)

<bean id="SpringConfigTool" class="quartz.util.SpringConfigTool"></bean>

UE5、CesiumForUnreal实现加载GeoJson绘制多面(MultiPolygon)功能(支持点选高亮) UE5、CesiumForUnreal实现加载GeoJson实现多面(MultiPolygon)的绘制功能,并且支持点选高亮和属性查询。 阅读详情

相关推荐

JS+H5打字练习器

实现功能 1.导入.TXT文件到打字练习内容(部分浏览器可能出于安全问题限制了这一步操作) 2.输入文本到打字练习内(弹出输入框,将要练习的内容输入至输入框) 3. 开始练习,并根据正误在打字练习内容文本上修改颜色(某个字正确显示绿色,某个字错误,显示红色,某个字没有打显示灰色) 4.开始练习、结束练习,全部输入完成后自动结束练习,也可提前手动结束练习,结束练习后弹窗用显示时和正确率。(区别在于一个全部输入完成且全部正确,一个提前结束无其他条件) 效果图 分析 HTML 结构解析 根元素:<!DO

w11111xxxl的博客 1413

Spring中获取某一类型下所有Bean实例的方法

void run();System . out . println("我是man,快跑!");System . out . println("我是women,慢跑!");} }System . out . println("使用交通工具。。。");} }System . out . println("开车!");System . out . println("骑自行车!");} }

Mrzhuangr的博客 3427

三维模型转变为点云模型的好工具——CloudCompare使用小记

普通三维模型能够直观地展示物体的三维全貌,但是在一些场合需要将三维模型变为相应的点云模型进行展示,而使用激光雷达等传感器采集到的点云信息往往只能反应模型表面的情况,或是使用PCL库中的可执行文件进行转换,这两种操作较为麻烦。笔者最近就遇到了这样一个情况,找到了一个名叫CloudCompare(CC)的软件,能够支持将多种文件格式的三维模型转变为点云模型。以下将本人在使用过程中所使用到的一些操作简记下来供朋友们和将来的自己参考。 一、下载 CloudCompare是一款免费软件,其可以在CloudComp

hdlwyt的博客 2万+

spring获取类的方法

1:(通过FileSystemXmlApplicationContext) 通过程序在初始化的时候,导入Bean配置文件applicationContext.xml ApplicationContext   ctx=new   FileSystemXmlApplicationConte( "classpath:applicationContext.xml"); BaseDAO   base...

lijilin12的博客 637

【实战解析】RTL8306MB交换芯片驱动开发中的RMII接口调试陷阱

本文深入剖析了RTL8306MB交换芯片驱动开发中RMII接口的典型调试陷阱。通过一个工业网关项目的实战案例,揭示了因硬件原理图设计疏忽导致TX_EN与CRS_DV信号线错接,从而引发网络“哑火”的根本原因。文章详细展示了使用示波器从时钟、数据到控制信号的系统性排查方法,并总结了关键的设计警示与自查清单,为嵌入式网络开发中的软硬件协同调试提供了宝贵经验。

qqq44的博客 1029

第二十六届中国机器人及人工智能大赛CRAIC决赛小型桌面级-立体仓储代码分享

国二奖,精度还有不少问题,没有视觉模块,单线程,比起其他大佬写的确实还有欠缺,继续加油吧。

qq_68232259的博客 691

SpringBoot 五种获取ApplicationContext的方式

之前每次想要获取Spring上下文【ApplicationContext】的时候,都去现查方案。本文针对获取Spring ApplicationContext的方式做了梳理,总结。 1. 概念 ApplicationContext是什么? 简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能 2. 获取ApplicationContext的方式 2.1. 创建工具类 通过此工具类,可以方便的获取bean组件, 获取配置信息等 import

penriver的博客 2万+

Qt EGLFS 图形后端详解

EGLFS (EGL Full Screen) 是Qt框架在嵌入式Linux系统中的高性能图形显示后端,它提供了直接基于EGL和OpenGL ES的硬件加速渲染解决方案。

浩瀚之水的专栏 512

Spring——五大类注解和方法注解详解

spirng五大类注解和方法注解详解以及常见面试题

Biteht的博客 3177

基于YOLO26/11/v8算法的Web目标检测系统,人脸表情识别系统,Django+Vue3 的前后端分离,实现摄像头实时识别,YOLO26/YOLO11/v8 + LLM大模型智能分析,科研必备

在人工智能迈向通用化(AGI)的今天,“视觉感知 + 语言理解”的多模态联合是未来的趋势。单纯的检测画框已经无法满足复杂的业务需求,如何让系统“看懂”画面并进行“思考”,是当前视觉项目的重点。我们知道目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。因此本项目将 YOLO 目标检测模型(兼容 YOLO26/v11/v8 系列)与 DeepSeek 等顶流大语言模型(LLM) 进行联合,使用 Django (后端) + Vue3 (前端) 技术栈

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2837

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5554

SpringBoot中获取ApplicationContext的方法

一、需求描述 在使用SpringBoot框架开发的过程中,我们有时候需要通过ApplicationContext获取一些bean。 这时候,就需要我们先获取ApplicationContext。 那么什么是ApplicationContext呢? 简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。 常见的有ClassPathApplicationContext、AnnotationConfigApplicationContext他们都继承了Applic

Evan's Blog ٩(๑❛ᴗ❛๑)۶ 1万+

【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线(上)

【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线(上)

AI人人懂 2168

java spring获取bean_普通Java类获取Spring的Bean的方法

普通Java类获取Spring的Bean的方法在SSH集成的前提下。某些情况我们需要在Action以外的类中来获得Spring所管理的Service对象。之前我在网上找了好几好久都没有找到合适的方法。例如:ApplicationContextcontext=newClassPathXmlApplicationContext();当时我觉得没有这个必要,浪费内存。后来我终于想出了一个解决方法...

weixin_35747785的博客 213

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

普通java类获取 spring中的bean方法

编写一个工具类 实现spring 的ApplicationContextAware接口 代码如下: 1 package com.xnh.web.utils; 2 3 import

wangchaoqi1985的博客 1008

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

普通Java类获取Spring的Bean的方法

普通Java类获取Spring的Bean的方法 在SSH集成的前提下。某些情况我们需要在Action以外的类中来获得Spring所管理的Service对象。   之前我在网上找了好几好久都没有找到合适的方法。例如: ApplicationContextcontext=newClassPathXmlApplicationContext(); ...

107

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring:在普通Java类中获取由Spring所管理的Bean

  一般情况下,在使用SPRING注解的方式管理bean时,只能通过注解或者配置文件注入的方式获取相应的bean。   但是在某些特殊情况下,我们需要在一个普通的JAVA类中获取由spring所管理的bean,下面是解决办法之一:    第一步:创建一个类并让其实现org.springframework.context.ApplicationContextAware接口,使Spring在启动...

weixin_30869099的博客 131

java 获取spring_普通Java类获取Spring的ApplicationContext

普通Java类获取Spring的ApplicationContext以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在SSH集成的前提下 某些情况我们需要在Action以外的类中来获得Spring所管理的Service对象之前我在网上找了好几好久都没有找到合适的方法 例如ApplicationContext contex...

weixin_29061465的博客 271

spring注入普通java类_一个方法教你在普通Java类使用spring注入service、dao

在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service。下面讲一个方法,让普通工具类也能使用service。定义一个类 SpringTool/*** 通过该类即...

weixin_35785186的博客 836

普通的java类如webservice服务端的类获取service和dao

本文来自:https://www.cnblogs.com/yeyinfu/p/7317088.html 在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service...

heqinghua217的博客 498

17、Spring Boot普通类调用bean【从零开始学Spring Boot】

转载:http://blog.youkuaiyun.com/linxingliang/article/details/52013017 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理...

weixin_30535913的博客 69

java service get dao_一个方法教你在普通Java类使用spring注入service、dao

在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service。下面讲一个方法,让普通工具类也能使用service。定义一个类 SpringTool/** * 通过该类...

weixin_35992880的博客 209

在普通Java类里使用spring里注入的service、dao等

在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service。 下面讲一个方法,让普通工具类也能使用service。 定义一个类 SpringTool ...

siyi1219的博客 450

在不受Spring管理的类中注入spring 管理的对象

前几天在做一个任务时,需要在一个普通的java类(不受Spring管理的类)中,调用 spring data jpa的某个xxxReponsitory 接口,同时需要读取properties 文件中的属性值,试了很多方法拿到的都是null,花了半个下午的时间才搞定,现在记录下解决方法。 这个问题网上大概有两个思路: 1. 将这个不受Spring管理的类交给Spring管理,然后就可以依赖注入 ...

Fickle_actor的博客 5583

java普通属性_Spring实战之设置普通属性值的方法示例

本文实例讲述了Spring实战之设置普通属性值的方法。分享给大家供大家参考,具体如下:一 配置xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/b...

weixin_39927508的博客 137

Java 创建对象方法的演变

通过 ClassPathXmlApplicationContext 调用 Bean,可以通过三种方式调用:id(需要强转)/ class(需要 bean 是单例的)/ id + class。第二段是我们自己的 bean,需要给 bean 指定 id(对象的唯一标识,不可重复),class(实现的类的全限定名),属性赋值(set 后面的属性)。

qq_43710228的博客 295
上一篇: 使用log4j将日志记录到文件中时遇到的问题
下一篇: 文件比较工具
javaxt
博客等级 码龄18年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值