问题标签 [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.
java - @ConditionalOnProperty 可以使用嵌套的属性值吗?
我想做类似的事情:
我的 yaml 将在哪里:
我该怎么做?
编辑:这不起作用:
spring - 在没有 Spring Boot 的情况下创建上下文后防止 Spring Batch 自动作业触发
我正在使用Spring Batch 设置一个项目,而不使用 Spring Boot。创建 Spring 应用程序上下文时,所有作业都会执行。
我尝试添加spring.batch.job.enbled=false
到application.properties以防止这种情况,但它仍然不起作用。
有没有其他方法可以阻止 Spring 在开始时执行作业?
主类:
工作类别:
应用程序属性:
运行日志:
编辑:从主类中删除了作业执行代码,作业仍然在上下文刷新时触发
编辑 2:包括运行日志
编辑 3:修正错字并更新日志
java - 将 Spring @Configuration 用于在上下文中注册 @Beans 的良好做法?
我已经决定要在 java 代码中注册 Spring Beans,并且我想知道应该如何以最好的方式完成它。
我通过构造函数注入 deps(不想使用@Autowire - 我认为它几乎是反模式),我可以通过添加使其工作:
但。@Configuration 部分应该去哪里?
我应该为每个包创建一个 Config 类吗?(试图使代码在包/域中关闭)
我应该在使用它们的类的内部类中注册它们吗?
应该怎么做?互联网上到处都是反模式,我想找到经过仔细考虑的方法。
提前感谢您的任何建议。
spring - Spring Boot - 在公共(库)项目中使用 yml 配置文件时未创建 JavaMailSender
我有一个其他 Spring Boot 项目使用的常见 Spring Boot 项目。所以,我有一个多模块设置。
公共项目使用Java Mail,我想在公共项目中配置它。
如果
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.yml
为application.yml
(并删除PropertySourcesPlaceholderConfigurer
bean),它会起作用。(我这里有所有代码,所以如果你尝试,你应该得到相同的结果。)但由于这是一个库,我无法命名该文件application.yml
,因为它会与使用该库的其他 Spring Boot 项目冲突。此外,我想使用 yml 文件而不是属性文件(所以我不能使用@PropertySource
)。
如何JavaMailSender
使用 yml 道具在库项目中创建和连接 Spring Boot?
spring - 为什么即使条件说它不应该加载到上下文中,spring bean 也会被验证?
鉴于下面的示例,我希望MyConfig.getSrvConfig()
不会被调用,因此也不会对返回的对象执行任何验证。但是由于某种原因,验证被执行并且测试用例失败。这个设置有什么问题吗?
我知道如果我private MySrvConfigBean srvConfig
没有在声明时初始化,测试会通过——但我真的不想MySrvConfigBean
成为一个带有@ConfigurationProperties(prefix = "cfg.srvConfig")
注释的独立类。
我们希望以这种方式使用它的原因是,因为我们随后能够以与在 YAML 文件中相同的方式在代码中构建配置,例如:(cfg
并且cfgA
是两个不同配置层次结构的“根”对象) .
在这种情况下,感觉就像验证的执行(由@Valid
on触发getSrvConfig()
)是一个错误。
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
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
在所有三个项目中拥有一个文件(正在使用)。
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
就是其中之一。有没有办法做到这一点?总的来说,我不确定我提出的配置是否合适,因为我发现文档和类似的开源项目示例非常有限。
欢迎任何反馈。
spring - Spring Cloud Config 服务器 - 无法从配置存储库中解析
我正在尝试构建一组相关的服务,发现、管理、配置和一个简单的休息服务。
出于问题的目的,我在读取SpringService
其余服务中的配置时遇到问题。
问题1:
Config-Service
干净利落地出现。但是,它只识别来自 的值application.yml
。它没有message.yml
在configurations
repo 中看到。
问题2:
Spring-service
,名字不好,是其余端点。它希望从中读取配置config-service
,但是,它无法读取配置存储库中定义的任何属性。
我有
,并且在启动服务时,我得到一个相当长的堆栈跟踪,指出无法解析name
变量。
我有以下依赖项,因此该列表似乎是完整的,除非我不理解某些内容。
谢谢参观。
java - 我可以使用@ConditionalOnExpression 检查注释的属性值吗?
我想要一个注释,它将根据属性的值引入不同的配置类。它可能会像这样工作:
(所有这些都是伪代码)
注释:
配置之一的示例:
CacheAnnotationMatcher.checkProperty
我创建的类和方法在哪里找到@EnableCaching
注释并检查cacheType
属性并返回真/假。