`

在spring项目中普通类如何得到spring容器管理的bean

阅读更多
今天碰到要在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_普通类中使用yml配置文件中的配置信息

    然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细介绍如何在这样的场景下实现这一目标。 首先,让我们来理解如何在非Spring...

    普通类调用Spring bean对象

    当我们需要在非Spring管理的普通类中调用Spring管理的bean对象时,需要掌握特定的方法。这篇文档将详细介绍如何实现这一操作,并探讨相关的源码和技术工具。 首先,理解Spring的核心概念——依赖注入(Dependency ...

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

    Spring Boot普通类调用bean【从零开始学Spring Boot】”旨在指导初学者如何在非Spring管理的类中访问和使用Spring容器中的bean。下面将详细讲解这个主题。 首先,了解Spring Boot的基础概念是必要的。Spring Boot...

    spring自动扫描和管理Bean的示例

    在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式地在配置文件中声明每个Bean,而是让Spring容器自动发现并管理应用中的组件。这一特性极大地简化了Spring应用的配置,提高了开发效率。...

    在web容器(WebApplicationContext)中获取spring中的bean

    Spring把Bean放在这个容器中,普通的类在需要的时候,直接用getBean()方法取出

    Spring学习笔记(9)----让Spring自动扫描和管理Bean

    在Spring中,Bean是一个由Spring IoC容器管理的对象,它代表应用程序中的一个组件或服务。Bean可以通过XML配置文件、注解或Java配置类来定义。而自动扫描和管理Bean则是通过注解或配置文件中的包扫描设置实现的。 #...

    SpringBoot如何在普通类加载Spring容器

    在实际开发中,我们可能需要在普通类中使用Spring容器中的Bean,例如在某些业务逻辑中需要使用Spring容器中的Bean。这时,我们可以使用封装的工具类来获取这些Bean,从而在普通类中使用它们。 通过封装一个工具类来...

    springBean加载过程源码解析文档,附有代码类名和行数

    在 Spring Boot 应用程序中,SpringApplication 负责加载和管理 Bean。 SpringApplication 初始化 在 SpringApplication 运行之前,首先需要初始化 SpringApplication 实例。这个过程中,SpringApplication 会创建...

    spring 中特殊bean用法

    在Spring框架中,Bean是核心概念,它代表了应用程序中的对象,这些对象由Spring容器管理其生命周期和依赖关系。特殊Bean用法主要涉及Spring提供的多种高级特性,包括但不限于工厂方法、 prototype scope、AOP代理、...

    spring在IoC容器中装配Bean详解

    在 Spring 框架中,IoC 容器是 Bean 的容器,负责创建、管理和装配 Bean。在本文中,我们将详细介绍 Spring 在 IoC 容器中装配 Bean 的过程。 一、Spring 配置概述 Spring 配置概述分为三部分:基于 XML 的配置、...

    关于spring boot中几种注入方法的一些个人看法

    @Bean 是一个注解,用来将一个普通的对象转换为一个 Spring bean,以便可以在spring 容器中管理。@Bean 可以使用在方法上,以便将该方法的返回值转换为一个 Spring bean。 在 Spring Boot 中,以上几种注入方法都是...

    spring入门教程之bean的继承与自动装配详解

    这里的`bean1`和`bean2`是Spring容器中的两个独立Bean,分别对应`com.Bean1`和`com.Bean2`的实例。 接下来,我们讨论Bean的自动装配。Spring提供了两种基本的自动装配方式:`byName`和`byType`。`byName`自动装配是...

    Spring 简介 Spring 简介

    就像Servlet容器管理Servlet一样,Spring容器管理着所谓的"Bean",这些Bean是应用程序中的核心组件。Spring容器可以根据配置文件(如XML或Java配置)自动创建、初始化和销毁Bean,使得开发者无需在代码中进行硬编码...

    Spring中定时任务

    - `TaskScheduler`接口:提供了一种声明式的任务调度方式,可以通过实现该接口并配置到Spring容器中来定制调度策略。 - `ThreadPoolTaskScheduler`:Spring提供的一个默认实现,基于线程池的任务调度器,可以控制...

    mybatis-spring整合项目

    【正文】 《mybatis-spring整合项目》是GitHub上官方提供的一个示例...通过深入研究和实践《mybatis-spring整合项目》,开发者不仅可以熟练掌握MyBatis和Spring的集成技巧,还能提升在实际项目中运用这些技术的能力。

    Spring Boot中Bean定义方调用方式解析

    使用 SpringUtil 工具类可以让我们在普通类中轻松地获取 applicationContext 对象,从而获取所需的 Bean 对象。这样,我们就可以在不需要将类注入到 Spring 容器中的情况下使用 Spring 提供的对象。 结语 在本文中...

    普通对象使用spring容器中的对象的实现方法

    如果普通对象不能被spring管理,我们可以使用SpringBeanUtil类来提供spring容器中的对象。 最后,我们需要注意在使用spring容器中的对象时,需要先获取ApplicationContext对象,然后才能使用它来获取spring容器中的...

    Spring 5.2.9的IOC核心jar包

    Bean是Spring容器管理的对象,可以通过XML配置文件或者Java配置类来定义。Bean的定义包括了类名、属性、构造器参数等信息,Spring容器根据这些信息创建和管理Bean。 **注解驱动的配置** Spring 5.2.9支持使用注解来...

    Spring源码学习六:bean初始化1

    在Spring框架中,Bean的初始化是其生命周期中的关键步骤,特别是在单例模式下,Spring容器会确保在应用程序启动时创建并初始化所有非延迟加载的单例Bean。在本篇文章中,我们将深入探讨Spring源码中关于Bean初始化的...

    Spring+SpringMVC+Mybatis框架项目整合

    这些配置用于初始化Spring容器并管理各个组件。 3. **配置SpringMVC**:创建SpringMVC的配置文件(如`servlet-context.xml`),配置DispatcherServlet、ViewResolver、HandlerMapping等,定义MVC的行为和视图解析...

Global site tag (gtag.js) - Google Analytics