首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从命令行加载spring上下文的属性

从命令行加载Spring上下文的属性,可以通过以下几种方式实现:

  1. 使用命令行参数:

在启动Spring应用时,可以通过命令行参数指定属性值。例如,启动Spring Boot应用时,可以使用以下命令:

代码语言:txt
复制
java -jar myapp.jar --spring.config.location=classpath:/,file:/path/to/config/

这将从类路径和指定的文件路径加载配置文件。

  1. 使用环境变量:

可以使用环境变量来设置属性值。在Spring Boot应用中,可以使用以下命令:

代码语言:txt
复制
export SPRING_CONFIG_LOCATION=classpath:/,file:/path/to/config/
java -jar myapp.jar

这将从类路径和指定的文件路径加载配置文件。

  1. 使用Java系统属性:

可以使用Java系统属性来设置属性值。在Spring Boot应用中,可以使用以下命令:

代码语言:txt
复制
java -Dspring.config.location=classpath:/,file:/path/to/config/ -jar myapp.jar

这将从类路径和指定的文件路径加载配置文件。

  1. 使用Spring ApplicationContextInitializer:

可以使用Spring ApplicationContextInitializer来在启动Spring应用时初始化上下文。例如,可以创建一个实现ApplicationContextInitializer接口的类:

代码语言:java
复制
public class MyContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {

    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
        ConfigurableEnvironment environment = applicationContext.getEnvironment();
        // 设置属性值
        environment.getPropertySources().addFirst(new PropertySource<String>("commandLine") {
            @Override
            public Object getProperty(String key) {
                return System.getProperty(key);
            }
        });
    }
}

然后在Spring Boot应用的主类上添加@EnableAutoConfiguration注解,并在启动Spring应用时使用以下命令:

代码语言:txt
复制
java -Dspring.config.location=classpath:/,file:/path/to/config/ -jar myapp.jar

这将从类路径和指定的文件路径加载配置文件,并使用MyContextInitializer初始化上下文。

总之,从命令行加载Spring上下文的属性,可以通过多种方式实现,包括使用命令行参数、环境变量、Java系统属性和Spring ApplicationContextInitializer。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

maven:从命令行(commandline)读取取pom.xml中的属性(property)

本文链接:https://blog.csdn.net/10km/article/details/103333098 如何在命令行(shell)读取pom.xml中的属性呢?...maven-help-plugin 来实现,在windows 命令行下如下实现: mvn help:evaluate -Dexpression=[property-name] | findstr /R...^^[^^\[INFO\]] 这其中用到了findstr命令(在linux下要用grep或sed来代替)过滤mvn输出的内容进行得到需要的值,以${project.version}为例 mvn help...-Dexpression=project.version -q -DforceStdout 但是我用的MAVEN 3.5.0下执行并不成功,什么也没有输出,百思不得其解 后来找到下面的文章,就明白了:...forceStdout这个选项是在maven-help-plugin 3.2.0以上版本才有效的(我在maven 3.5.0下执行时,maven-help-plugin默认使用的版本是2.2)。

3.1K20
  • Spring Boot 属性加载原理解析

    Boot 监听器详解 Spring Boot banner详解 Spring Boot 属性配置解析 Spring Boot 属性加载原理解析 在《Spring Boot 框架整体启动流程详解》中,我们了解到有一步是准备环境...prepareEnvironment,属性加载就是在这一步开始的。...DevToolsHomePropertiesPostProcessor:添加Devtools 全局配置的配置源 另外@PropertySource注解配置的加载是在刷新上下文中的ConfigurationClassPostProcessor...类中处理,具体代码可见ConfigurationClassParser: 17种属性配置的加载基本都在这里了,最后总结一下 总结 作者其他要推荐的文章,欢迎来学习: Prometheus...的加载 Spring Boot Admin2 AdminServerAutoConfiguration详解 Spring Boot Admin2 实例状态监控详解 Spring Boot Admin2

    41920

    从命令行查看所有已安装的Linux内核

    Linux内核是GNU/Linux操作系统的核心组件。它是一个免费、开源、庞大、模块化、多任务的类Unix的操作系统内核。它最初是由Linus Torvalds在1991年为他的i386 PC创造的。...有没有想过在您的Linux机器中安装了多少Linux内核? 没有? 好吧,这个简短的教程将教你如何在不同Linux发行版中查看所有安装的Linux内核以及它们的版本。...从命令行查看所有安装的Linux内核 根据您使用的Linux发行版,有多种方法可以查看系统中安装的所有Linux内核信息。查看Linux中所有已安装内核的最简单、最快捷的方法是使用find命令。...查看Fedora中安装的内核 AlmaLinux 8.3上的输出示例: ? 查看AlmaLinux上安装的内核 5....列出在openSUSE中安装的所有Linux内核 因为openSUSE也是一个基于rpm的系统,所以列出所有安装的Linux内核的命令与Fedora、RHEL发行版相同。

    13.3K20

    Spring Ioc源码分析 之 Bean的加载(七):属性填充

    () 实例化 bean 后置处理 单例模式的循环依赖处理 属性填充 初始化 bean 实例对象 依赖检查 注册bean的销毁方法 本章我们主要分析第5步: 在Spring中属性注入有三种方式: xml...,例如xml中节点中的default-autowire属性,因为本次Spring系列主要是分析注解方式的,这里就不详细分析了。...Value等就是根据这个方法来实现最终注入依赖的属性的。...是Spring中用于处理JavaEE5中常用注解(主要是EJB相关的注解)和Java6中关于JAX-WS相关的注解,可以处理@PostConstruct、@PreDestroy等Bean生命周期相关事件的注解...详细说明见Spring注解@Resource源码分析 总结 到这里就已经完成了注解方式所有属性的注入了。

    84130

    .NET 的程序集加载上下文

    ---- 程序集加载上下文 当你向应用程序域中加载一个程序集时,可能会加载到以下四种不同的上下文中的一种: 默认加载上下文(the Default Load Context) 加载位置加载上下文(the...目录中发现的程序集 Assembly.Load 方法的大多数重载都将程序集加载到此上下文中 ApplicationBase 和 PrivateBinPath 这两个属性虽然允许被设置,但它们只对新生成的...AppDomain 生效,直接设置当前 AppDomain 中这两个属性的值并不会产生任何效果。...属性来设置多个应用程序执行时的依赖探测路径。...将程序集加载到默认加载上下文中时,会自动加载其依赖项。 使用默认加载上下文时,加载到其他上下文中的依赖项将不可用,并且不能将位于探测路径外部位置的程序集加载到默认加载上下文中。

    36730

    spring-自动加载配置文件使用属性文件注入

    自动加载配置文件 在web项目中,可以让spring自动加载配置文件(即上图中的src/main/resouces/spring下的xml文件),WEB-INF/web.xml中参考以下设置: 1 加载classpath路径下 spring目录下的所有以applicationContext-开头的xml文件 , 通常为了保持配置文件的清爽...容器会自动加载classpath\properties目录下的所有以.properties后缀结尾的文件 ,  我们在src/main/resources/properties/下放置一个product.properties...属性文件 , 内容如下: 1 product.id=3 2 product.no=n95 3 product.name=phone 该文件被spring自动加载后 , 就可以用里面定义的属性值 , 为Bean...,  向Spring容器要一个Bean ,  显示下它的属性: 1 package yjmyzz.controller; 2 3 import javax.faces.bean.ManagedBean

    1.2K70

    3个用于从命令行进行演示的工具【Linux-Command line】

    你还可以添加Pandoc metadata block,其中可以包含你的姓名,演示文稿的标题以及演讲的日期。 这会将标题添加到每张幻灯片的顶部,并将你的姓名和日期添加到底部。...这是我拼凑在一起的示例幻灯片的样子: 屏幕快照 2019-12-07 下午10.42.29.png 通过按箭头键或键盘上的空格键来循环浏览它们。 tpp tpp是另一个简单的,基于文本的演示工具。...我之前提到的那些有趣而有用的惊喜呢? 可以通过以下方式在幻灯片上的文本中添加色彩飞溅效果:输入“--color”,然后输入要使用的颜色的名称,例如红色。...这是一个例子: tpp-code_1.gif Sent Sent并不是严格意义上的命令行演示工具。 你可以从命令行运行它,但是它将打开一个X11窗口,其中包含你的幻灯片。...开箱即用,字体可能太小,如在上面的屏幕截图中看到的那样。 如果你的终端仿真器支持配置文件,请为你的演示文稿创建一个要使用的字体,并使用所需的字体。 然后进入全屏模式。

    2.3K00

    spring事务的传播属性--@Transaction的Propagation属性

    在Spring的@Transaction中,有个重要的属性:Propagation,指的是事务方法之间发生嵌套调用时,事务的传播行为(当前调用的这个方法的事务,和当前的其他事务之间的关系)。...在TransactionDefinition中定义了7种事务的传播行为,这里简单记录一下。...), //当前有事务,就加入这个事务,没有事务,就以非事务的方式执行 SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS), //当前有事务...就加入这个事务,没有事务,就抛出异常 MANDATORY(TransactionDefinition.PROPAGATION_MANDATORY), //新建一个事务执行,如果当前有事务,就把当前的事务挂起...,会抛出异常 NEVER(TransactionDefinition.PROPAGATION_NEVER), //当前有事务,就新建一个事务,嵌套执行,当前无事务,就新建一个事务执行 //这个看了不同的文章

    2K30

    spring的Bean加载过程

    文章目录 1. spring Bean加载过程 1.1. 总结 1.2....参考文章 spring Bean加载过程 1、找准入口 ,使用ClassPathXmlApplicationContext加载配置文件,用于加载classPath下的配置文件 //第一行,执行完成之后就完成了...spring配置文件的加载,刷新spring上下文 ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(...synchronized (this.startupShutdownMonitor) { //在刷新之前设置一些参数,比如设置开始时间戳,上下文是否激活的标志,输出刷新上下文的信息,验证一些必要的属性...这个是后置处理器,实现这个类可以修改容器中bean的数据信息,可以在spring配置文件加载之后执行,在单例实例化之前调用,因此可以在其中修改和获取bean的实例化的信息,通过BeanDefintion

    1.8K10

    Spring的Bean加载流程

    Spring IOC容器就像是一个生产产品的流水线上的机器,Spring创建出来的Bean就好像是流水线的终点生产出来的一个个精美绝伦的产品。既然是机器,总要先启动,Spring也不例外。...4、BeanDefinationRegistry: 执行到这里,Spring已经将存在于各处的配置元信息加载到内存,并转化为BeanDefination的形式,这样我们需要创建某一个对象实例的时候,找到相应的...如果该对象是配置成懒加载的方式,那么直到我们向Spring要依赖对象实例之前,其都是以BeanDefinationRegistry中的一个个的BeanDefination的形式存在,也就是Spring只有在我们第一次依赖对象的时候才开启相应对象的实例化阶段...属性,然后这两个配置的加载将会统一存放在 beanDefinition 中的 methodOverrides 属性里。...③如果这个Bean实现了ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法,传入Spring上下文; (2)

    48511
    领券