问题标签 [spring-config]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
466 浏览

java - @ConditionalOnProperty 可以使用嵌套的属性值吗?

我想做类似的事情:

我的 yaml 将在哪里:

我该怎么做?

编辑:这不起作用:

0 投票
3 回答
10263 浏览

spring - 在没有 Spring Boot 的情况下创建上下文后防止 Spring Batch 自动作业触发

我正在使用Spring Batch 设置一个项目,而不使用 Spring Boot。创建 Spring 应用程序上下文时,所有作业都会执行。

我尝试添加spring.batch.job.enbled=falseapplication.properties以防止这种情况,但它仍然不起作用。

有没有其他方法可以阻止 Spring 在开始时执行作业?

主类:

工作类别:

应用程序属性:

运行日志:

编辑:从主类中删除了作业执行代码,作业仍然在上下文刷新时触发

编辑 2:包括运行日志

编辑 3:修正错字并更新日志

0 投票
1 回答
530 浏览

java - 将 Spring @Configuration 用于在上下文中注册 @Beans 的良好做法?

我已经决定要在 java 代码中注册 Spring Beans,并且我想知道应该如何以最好的方式完成它。

我通过构造函数注入 deps(不想使用@Autowire - 我认为它几乎是反模式),我可以通过添加使其工作:

但。@Configuration 部分应该去哪里?

我应该为每个包创建一个 Config 类吗?(试图使代码在包/域中关闭)

我应该在使用它们的类的内部类中注册它们吗?

应该怎么做?互联网上到处都是反模式,我想找到经过仔细考虑的方法。

提前感谢您的任何建议。

0 投票
0 回答
1300 浏览

spring - Spring Boot - 在公共(库)项目中使用 yml 配置文件时未创建 JavaMailSender

我有一个其他 Spring Boot 项目使用的常见 Spring Boot 项目。所以,我有一个多模块设置。

公共项目使用Java Mail,我想在公共项目中配置它。

根据Spring Boot 文档

如果spring.mail.host相关库(由 spring-boot-starter-mail 定义)可用,JavaMailSender则如果不存在则创建默认值。

所以,这是我的library.yml文件,

这是我的 gradle 文件:

所以,我认为我已经满足了 spring 创建JavaMailSender. 正确的?

我有这个配置类:

这是我希望 Spring Boot 连接 JavaMailSender 的地方:

这是我的测试配置:

和测试本身:

但是测试失败了

原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“org.springframework.mail.javamail.JavaMailSender”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{}

如果我更改library.ymlapplication.yml(并删除PropertySourcesPlaceholderConfigurerbean),它会起作用。(我这里有所有代码,所以如果你尝试,你应该得到相同的结果。)但由于这是一个库,我无法命名该文件application.yml,因为它会与使用该库的其他 Spring Boot 项目冲突。此外,我想使用 yml 文件而不是属性文件(所以我不能使用@PropertySource)。

如何JavaMailSender使用 yml 道具在库项目中创建和连接 Spring Boot?

0 投票
1 回答
76 浏览

spring - 为什么即使条件说它不应该加载到上下文中,spring bean 也会被验证?

鉴于下面的示例,我希望MyConfig.getSrvConfig()不会被调用,因此也不会对返回的对象执行任何验证。但是由于某种原因,验证被执行并且测试用例失败。这个设置有什么问题吗?

我知道如果我private MySrvConfigBean srvConfig没有在声明时初始化,测试会通过——但我真的不想MySrvConfigBean成为一个带有@ConfigurationProperties(prefix = "cfg.srvConfig")注释的独立类。

我们希望以这种方式使用它的原因是,因为我们随后能够以与在 YAML 文件中相同的方式在代码中构建配置,例如:(cfg并且cfgA是两个不同配置层次结构的“根”对象) .

在这种情况下,感觉就像验证的执行(由@Validon触发getSrvConfig())是一个错误。

0 投票
0 回答
204 浏览

spring - Spring Boot 配置客户端 | 休息端点不工作

我试图通过 spring boot config server 将配置外部化。

我使用 SVN 作为配置的版本控制。

https://svnret2.uk.fid-intl.com:18081/svn/Test_Config/trunk/dev/myapp/myapp-dev.properties

配置服务器在端口 8888 上运行。 ----------application.properties for config server----------

为了使用配置服务器中的属性,我在 application.properties 中创建了具有以下配置的 spring 配置客户端

----------application.properties----------

配置客户端中暴露了一个休息端点,如下所示:
---------- 休息端点----------

-----------------------------执行步骤------ -
运行方式 -> 运行配置
参数
-Dspring.application.name=myapp
-Dspring.profiles.active=dev

客户端已启动并在端口 8081 上运行。但我在访问 http://localhost:8081/message时得到 404

0 投票
1 回答
410 浏览

spring-config - 如何在 Spring 中配置多模块项目而不重复 yml 配置文件 props?

我有三个项目。Proj 3 依赖于 Proj 2,Proj 2 依赖于 Proj 1。每个项目都使用 Spring Boot,并配置了 yml 文件。我不想在 Proj 2 中重复 Proj 1 的 yml 配置。同样,我不想在 Proj 3 中重复 Proj 2 和 Proj 1 的 yml 配置。

如何才能做到这一点?据我所知,我只能application.yml在所有三个项目中拥有一个文件(正在使用)。

0 投票
2 回答
1744 浏览

spring-boot - 带有 JWT 的 Spring Boot 和 Apache Shiro - 我使用正确吗?

我有 Spring Boot 应用程序,我试图将 Apache shiro 与它集成。作为第一次迭代,我正在验证和授权 JWT 方式,没有任何会话。

按照我的架构方式,每个 REST 请求都必须包含需要验证的 JWT 标头。我正在使用 shiro 过滤器进行操作。验证后,过滤器设置一个上下文,任何 REST 控制器方法都可以获取并对其进行操作。

我希望社区的意见,以确保我的配置是正确的。此外,我面临着某些问题(至少是 IMO)。因此,如果有人可以对正确的处理方式有所了解,将不胜感激。

以下是一些代码片段,展示了我的配置和领域设计。

片段 1:Shiro 配置

片段 2:身份验证过滤器

片段 3:TokenRestController

片段 4:授权领域

问题和问题

  • 与此处提到的相同错误。 Shiro 用 DefaultSecurityManager 抱怨“没有 id xxx 的会话” 我基本上希望 Shiro 停止使用和/或验证会话。有没有办法做到这一点?我通过实施与答案中提到的相同的修复来解决它,就是ensureUserIsLoggedOut()这样。

  • 正如您在配置的 ShiroFilterFactoryBean 定义中看到的那样,我正在设置一些过滤器链定义。在那里你可以看到我设置每个以开头的 api 调用都/api将在前面有身份验证过滤器。但问题是我想为它添加一些例外。比如,/api/v0/login就是其中之一。有没有办法做到这一点?

  • 总的来说,我不确定我提出的配置是否合适,因为我发现文档和类似的开源项目示例非常有限。

欢迎任何反馈。

0 投票
2 回答
2347 浏览

spring - Spring Cloud Config 服务器 - 无法从配置存储库中解析

我正在尝试构建一组相关的服务,发现、管理、配置和一个简单的休息服务。

出于问题的目的,我在读取SpringService其余服务中的配置时遇到问题。

问题1:

Config-Service干净利落地出现。但是,它只识别来自 的值application.yml。它没有message.ymlconfigurationsrepo 中看到。

问题2:

Spring-service,名字不好,是其余端点。它希望从中读取配置config-service,但是,它无法读取配置存储库中定义的任何属性。

我有

,并且在启动服务时,我得到一个相当长的堆栈跟踪,指出无法解析name变量。

我有以下依赖项,因此该列表似乎是完整的,除非我不理解某些内容。

谢谢参观。

0 投票
1 回答
1033 浏览

java - 我可以使用@ConditionalOnExpression 检查注释的属性值吗?

我想要一个注释,它将根据属性的值引入不同的配置类。它可能会像这样工作:

(所有这些都是伪代码)

注释:

配置之一的示例:

CacheAnnotationMatcher.checkProperty我创建的类和方法在哪里找到@EnableCaching注释并检查cacheType属性并返回真/假。