`
SpaceCity
  • 浏览: 98923 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring配置加载(部分)

阅读更多
package com.suning.crawler.util;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
* 手动加载spring
*
* @author xxx
*/
public final class SpringBean
{
    /**
     * spring容器加载
     */
    private static ApplicationContext context;

    /**
     * 私有构造函数
     */
    private SpringBean()
    {
    }

    /**
     * @param beanId
     *            beanID
     * @return bean
     */
    public static Object getBean(String beanId)
    {
        // 初始化Spring
        if (null == context)
        {
            initial();
        }

        return context.getBean(beanId);
    }

    /**
     * 初始化Spring容器
     */
    public static void initial()
    {
        // 获取spring配置文件
        String[] configLocation = getConfigLocation();
        // spring 初始化实例
        context = new ClassPathXmlApplicationContext(configLocation);
    }

    /**
     * 获取spring配置文件地址
     *
     * @return config目录下的spring配置文件地址
     */
    private static String[] getConfigLocation()
    {
        // spring文件地址
        List<String> configLocation = new ArrayList<String>();
        // 当前路径
        String basePath = SpringBean.class.getClassLoader().getResource("").getPath();
        File currentPath = new File(basePath);
        // 递归遍历spring文件
        recursizeConfigLocation(configLocation, currentPath.getAbsolutePath(), currentPath);

        return configLocation.toArray(new String[configLocation.size()]);
    }

    private static void recursizeConfigLocation(List<String> configLocation, String relativePath, File currentFile)
    {
        // 目录
        if (currentFile.exists() && currentFile.isDirectory())
        {
            // 遍历当前所有文件
            File[] currentFiles = currentFile.listFiles();
            // 文件名称

            for (File targetFile : currentFiles)
            {
                recursizeConfigLocation(configLocation, relativePath, targetFile);
            }
        }
        // 文件
        else if (currentFile.exists() && currentFile.isFile())
        {
            // 获取文件名称
            String targetName = currentFile.getName();
            // 过滤spring文件
            if (null != targetName && targetName.matches(".+\\.spring\\.xml"))
            {
                targetName = currentFile.getAbsolutePath();
                targetName = targetName.replace(relativePath, ".");
                configLocation.add(targetName);
            }
        }
    }
}
0
0
分享到:
评论

相关推荐

    如何加载jar包中的spring配置文件

    在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...

    Spring3.0 配置文件中加载Properties文件的小例子

    在Spring 3.0框架中,配置文件是管理和组织应用程序行为的关键部分。Properties文件则常用于存储应用程序的配置参数,如数据库连接字符串、系统环境变量等。本篇将详细讲解如何在Spring 3.0的配置文件中加载...

    浅谈SpringBoot2.4 配置文件加载机制大变化

    Spring Boot 2.4 中的配置文件加载机制发生了重大变化,这些变化将影响到应用程序的配置文件加载方式。下面是相关知识点的详细介绍: 一、为什么要进行这些更改 随着最新版本 Spring Boot 的发布,Spring 一直在...

    加载spring 文件,在web.xml中的配置

    `&lt;listener&gt;`标签中的`&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;`定义了一个监听器,它会在Web应用启动时自动加载默认的Spring配置文件,即`/WEB-INF/...

    spring配置最佳实践.zip

    本实践指南将深入探讨Spring配置的最佳实践,旨在帮助开发者优化代码,提高应用的可维护性和可扩展性。 一、XML配置与Java配置的选择 Spring最初是以XML配置为主,但随着版本的更新,Java配置逐渐成为首选。Java...

    spring加载顺序讨论

    在Spring框架中,加载顺序是理解应用程序启动过程的关键部分,涉及到bean的实例化、初始化以及依赖注入等多个环节。本文将详细探讨Spring加载顺序,并结合`@PostConstruct`、`构造方法`以及`@Autowired`等关键注解...

    spring配置文件模板

    《Spring配置文件模板详解》 在Java开发领域,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力,成为了企业级应用开发的重要选择。而...

    spring配置.txtspring配置.txt

    - **ContextLoaderListener**:当Web应用启动时,会加载一个或多个Spring配置文件,并创建一个WebApplicationContext。通过这种方式可以实现容器级别的初始化。 - **ContextLoaderServlet**:与...

    Spring配置文件spring-context.zip

    "Spring配置文件spring-context.zip"包含了Spring框架中的上下文配置,这是Spring管理对象及服务的核心。 `applicationContext.xml`是Spring应用上下文的主配置文件,它定义了bean的声明、bean之间的依赖关系以及...

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

    Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责加载和管理 Bean。 SpringApplication...

    spring配置文件详细介绍

    下面是对Spring配置文件的详细介绍。 首先,Spring配置文件通常是以`.xml`为扩展名的文件,例如`beans.xml`。这些文件存储在项目的`src/main/resources`目录下,以便在运行时被自动加载。Spring容器...

    MyBatis-Spring配置教程,非常适合初学者

    你可以使用JUnit或者Spring的TestContext框架创建测试类,通过@ContextConfiguration注解加载Spring配置,并使用@Autowired注入需要测试的bean。然后编写测试方法,检查MyBatis-Spring的集成是否正常工作。 在学习...

    Spring Bean 加载顺序 .

    在Spring框架中,Bean的加载顺序是理解Spring IoC(Inversion of Control,控制反转)容器工作原理的关键部分。这个过程涉及到Bean定义的解析、实例化、初始化等多个步骤。让我们详细探讨Spring Bean加载顺序的各个...

    大型项目的struts,spring配置文件

    3. 对于复杂的业务逻辑,可以利用Spring的Profile特性,根据环境(如开发、测试、生产)加载不同的配置。 4. 使用Spring的AOP和AspectJ进行切面编程,可以实现更灵活的代码组织和更少的重复代码。 5. 配合使用Maven...

    spring 下载与配置

    如果是传统的Spring应用,可以通过ApplicationContext接口来创建一个容器并加载配置。如果是Spring Boot应用,通常会有一个主启动类,其中包含@SpringBootApplication注解,它会自动加载配置并启动应用。 ```java ...

    Spring bean 动态注册,jar包热替换

    Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换。spring的bean动态加载则需要对...

    Spring Boot多模块配置文件读取

    - 当项目规模进一步扩大时,可以考虑使用Spring Cloud Config Server集中管理所有模块的配置,实现配置的远程加载和统一管理。 总之,Spring Boot的多模块配置文件读取策略旨在提高项目的可扩展性和可维护性。通过...

    spring读取配置文件

    在Spring框架中,配置文件是应用的核心组成部分,它定义了bean的定义、依赖关系以及其他配置信息。本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`...

    Spring+mvc+mybatis Mapper xml自动加载

    "Spring+mvc+mybatis Mapper xml自动加载"这个主题聚焦于如何在开发过程中优化配置,使得改动Mapper XML文件后,无需重启Tomcat服务器,就可以立即生效,从而提高开发效率。 Spring MVC是Spring框架的一部分,它...

    spring配置jar包详解

    核心工具类的集合,是Spring框架其他组件的基础,也是所有Spring应用的必备部分。它依赖于 Commons Logging,允许灵活的日志记录机制,如Log4J。 3. **spring-beans.jar**: 提供了访问配置文件、创建和管理bean...

Global site tag (gtag.js) - Google Analytics