今天碰到要在ssh项目中的一个普通类中访问spring容器管理的bean,现在找到一种解决办法,不知道是否是优化的,先记录下来,以免下次又要狂搜索。
package com.**;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.sql.DataSource;
import oracle.xml.sql.query.OracleXMLQuery;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class XMLQuery extends HttpServlet throws ServletException
{
public void init(ServletConfig config)
{
super.init(config);
System.out.println("Init Success!!!!!!!!!!");
ServletContext context = config.getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
DataSource dataSource = (DataSource) ctx.getBean("dataSource");
try
{
Connection conn = dataSource.getConnection();
this.sqlToXML(conn);
} catch (SQLException e)
{
e.printStackTrace();
}
}
public void sqlToXML(Connection conn)
{
try{
OracleXMLQuery query = new OracleXMLQuery(conn, "SELECT user_id,
user_name, user_password FROM sys_user");
query.setRowTag("journal");
String xmlString=query.getXMLString();
OutputStream output=new FileOutputStream(new File("c:/catalog-output.xml"));
PrintWriter printWriter=new PrintWriter(output);
printWriter.print(xmlString);
printWriter.flush();
}catch(IOException e){}
}
}
还需要在web.xml中增加:
<servlet>
<servlet-name>TimerServlet</servlet-name>
<servlet-class>com.hnnd.common.xmlquery.XMLQuery</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
分享到:
相关推荐
然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细介绍如何在这样的场景下实现这一目标。 首先,让我们来理解如何在非Spring...
当我们需要在非Spring管理的普通类中调用Spring管理的bean对象时,需要掌握特定的方法。这篇文档将详细介绍如何实现这一操作,并探讨相关的源码和技术工具。 首先,理解Spring的核心概念——依赖注入(Dependency ...
Spring Boot普通类调用bean【从零开始学Spring Boot】”旨在指导初学者如何在非Spring管理的类中访问和使用Spring容器中的bean。下面将详细讲解这个主题。 首先,了解Spring Boot的基础概念是必要的。Spring Boot...
在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式地在配置文件中声明每个Bean,而是让Spring容器自动发现并管理应用中的组件。这一特性极大地简化了Spring应用的配置,提高了开发效率。...
Spring把Bean放在这个容器中,普通的类在需要的时候,直接用getBean()方法取出
在Spring中,Bean是一个由Spring IoC容器管理的对象,它代表应用程序中的一个组件或服务。Bean可以通过XML配置文件、注解或Java配置类来定义。而自动扫描和管理Bean则是通过注解或配置文件中的包扫描设置实现的。 #...
在实际开发中,我们可能需要在普通类中使用Spring容器中的Bean,例如在某些业务逻辑中需要使用Spring容器中的Bean。这时,我们可以使用封装的工具类来获取这些Bean,从而在普通类中使用它们。 通过封装一个工具类来...
在 Spring Boot 应用程序中,SpringApplication 负责加载和管理 Bean。 SpringApplication 初始化 在 SpringApplication 运行之前,首先需要初始化 SpringApplication 实例。这个过程中,SpringApplication 会创建...
在Spring框架中,Bean是核心概念,它代表了应用程序中的对象,这些对象由Spring容器管理其生命周期和依赖关系。特殊Bean用法主要涉及Spring提供的多种高级特性,包括但不限于工厂方法、 prototype scope、AOP代理、...
在 Spring 框架中,IoC 容器是 Bean 的容器,负责创建、管理和装配 Bean。在本文中,我们将详细介绍 Spring 在 IoC 容器中装配 Bean 的过程。 一、Spring 配置概述 Spring 配置概述分为三部分:基于 XML 的配置、...
@Bean 是一个注解,用来将一个普通的对象转换为一个 Spring bean,以便可以在spring 容器中管理。@Bean 可以使用在方法上,以便将该方法的返回值转换为一个 Spring bean。 在 Spring Boot 中,以上几种注入方法都是...
这里的`bean1`和`bean2`是Spring容器中的两个独立Bean,分别对应`com.Bean1`和`com.Bean2`的实例。 接下来,我们讨论Bean的自动装配。Spring提供了两种基本的自动装配方式:`byName`和`byType`。`byName`自动装配是...
就像Servlet容器管理Servlet一样,Spring容器管理着所谓的"Bean",这些Bean是应用程序中的核心组件。Spring容器可以根据配置文件(如XML或Java配置)自动创建、初始化和销毁Bean,使得开发者无需在代码中进行硬编码...
- `TaskScheduler`接口:提供了一种声明式的任务调度方式,可以通过实现该接口并配置到Spring容器中来定制调度策略。 - `ThreadPoolTaskScheduler`:Spring提供的一个默认实现,基于线程池的任务调度器,可以控制...
【正文】 《mybatis-spring整合项目》是GitHub上官方提供的一个示例...通过深入研究和实践《mybatis-spring整合项目》,开发者不仅可以熟练掌握MyBatis和Spring的集成技巧,还能提升在实际项目中运用这些技术的能力。
使用 SpringUtil 工具类可以让我们在普通类中轻松地获取 applicationContext 对象,从而获取所需的 Bean 对象。这样,我们就可以在不需要将类注入到 Spring 容器中的情况下使用 Spring 提供的对象。 结语 在本文中...
如果普通对象不能被spring管理,我们可以使用SpringBeanUtil类来提供spring容器中的对象。 最后,我们需要注意在使用spring容器中的对象时,需要先获取ApplicationContext对象,然后才能使用它来获取spring容器中的...
Bean是Spring容器管理的对象,可以通过XML配置文件或者Java配置类来定义。Bean的定义包括了类名、属性、构造器参数等信息,Spring容器根据这些信息创建和管理Bean。 **注解驱动的配置** Spring 5.2.9支持使用注解来...
在Spring框架中,Bean的初始化是其生命周期中的关键步骤,特别是在单例模式下,Spring容器会确保在应用程序启动时创建并初始化所有非延迟加载的单例Bean。在本篇文章中,我们将深入探讨Spring源码中关于Bean初始化的...
这些配置用于初始化Spring容器并管理各个组件。 3. **配置SpringMVC**:创建SpringMVC的配置文件(如`servlet-context.xml`),配置DispatcherServlet、ViewResolver、HandlerMapping等,定义MVC的行为和视图解析...