问题标签 [spring-boot-starter]
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 - 为特定上下文自定义 Spring Boot 属性的更简单方法
我有一个项目使用带有前缀的所有默认引导属性的 YAML spring.jms.*
,spring.activemq.*
...我将其移至启动器,因此我需要将我的内部组件所需的配置与导入器应用程序的默认设置隔离开来。
有什么办法可以很好地满足这种需求吗?理想情况下,我可以透明地从相同的属性类(JmsConfiguration
等)中获利,因为它们包含嵌套配置。也许以某种方式,我有 2 个带有spring.jms
等的块,并将我的属性标记为来自特定块。
我知道配置文件存在,但是通过启动器从可选组件驱动它们感觉很奇怪。
java - Spring-Boot-Test @MockBeans 是否应该符合 @ConditionalOnBean 条件?
我有一个@Configuration
带有FOO @Bean
注释的 java 类,@ConditionalOnBean(BAR.class).
因为我希望导入器项目提供或不提供这个 bean,它在我的项目中的任何地方都不存在。
在我的集成测试中,我Bar.class
通过@MockBeans
. 但是由于某种原因 Spring-Boot -debug 告诉我它没有找到它,所以我的条件 bean 没有被加载。
我几乎可以肯定这种情况过去可以正常工作,但是我是否配置了任何额外的东西?我无法让它工作
PS>我发现在与条件相同的@Configuration 中手动重新注册@Bean 也看不到它!有没有与他有关的已知错误?
自动回复:本案的罪魁祸首是
您需要非常小心添加 bean 定义的顺序,因为这些条件是根据到目前为止已处理的内容进行评估的。出于这个原因,我们建议仅在自动配置类上使用 @ConditionalOnBean 和 @ConditionalOnMissingBean 注释(因为在添加任何用户定义的 bean 定义后保证加载这些注释)。
P.S2> 我意识到 Bar.class 是一个接口,但我不明白为什么只要存在实现它就不能工作
P.S3> 我发现 MockitoTestExecutionListener 是在 OnBeanCondition 类之后执行的。这完全是我的问题。
yaml - 我的 SpringBoot 的 Togglz Yml/Yaml 配置不起作用
尝试使用 Togglz 创建功能切换。在我的应用程序中进行以下配置/代码,
特征枚举类:
我的要求:
我需要这样做,如果 FEATURE_ONE 在 yml 文件中配置为 true,则 if 条件,否则,else 必须执行..
但我的期望没有发生。虽然我在 yml 文件中给出了 true,但 AppFeatures.FEATURE_ONE.isActive() 不正确,帮助/指导我找出哪里出错了。
注意我正在使用,togglz 2.4.1 final 和 springboot 1.3.3,我需要启用/禁用应该只在 yml 中完成,而不是在 enum 类中。
java - spring-boot 启动器中的 Pact 实现
我已经开始尝试将 pact-framework 实现到 spring-boot-starter 中,但我偶然发现了一个问题。我希望可以通过 application.properties 配置消费者、生产者等。目前我已经创建了三个模块AutoConfigure
、Starter
和Sample
。在示例中,我试图实现一个消费者。当我在里面寻找 dependency:tree 时,Starter
我可以看到它们。
这是自动配置的实现:
当我调试时,ConsumerPortTest
我得到了rule
初始化,但没有pacts (which is size=0) and without
mockServer which is
null`
这是我提交的 GitHub存储库的链接。所有的帮助将不胜感激。
非常感谢!
log4j - spring-boot-starter-cache with camunda 显示 java.lang.NoClassDefFoundError: org/apache/log4j/Priority class not found
我正在使用 camunda(一个业务流程工具,不确定是否与它有关)。pom.xml 在下面(仅删除了标头和 maven 构建插件)。
当我在 Tomcat 中构建和部署时,我得到“java.lang.NoClassDefFoundError:org/apache/log4j/Priorityorg/apache/log4j/Priority”。堆栈跟踪如下。
堆栈跟踪如下:
我正在继续努力……任何线索都会有所帮助!
java - Spring-boot 安全性不会尊重具有自定义 AuthenticationProvider 的角色
我正在创建自己的自定义身份验证提供程序。现在我只是在检查静态用户名和密码,但稍后这将被更高级的东西取代,所以虽然在这种情况下我不需要使用自定义提供程序,但这对我没有多大帮助,因为它只是基础工作我还没有添加其他代码。
话虽如此,这是我的代码处于损坏状态。
我的自定义身份验证提供程序:
这是我使用的安全配置:
现在,当我运行此命令时,如果我使用 curl 访问未指定用户和密码的端点,我会得到以下信息:
如果我指定正确的用户名和密码,我会得到以下信息:
最后,如果我指定了错误的用户名和密码,我会得到以下信息:
最后一点,虽然我无法让角色直接工作,但我可以让它测试用户是否完全通过身份验证并使用它来授予权限。这不是一个可行的解决方案,因为我需要角色,但它可能会给任何试图回答这个问题的人一些提示。
所以我可以改变 DeviceSecurityConfig 类的配置方法如下:
使用这个新版本的代码,我的 curl 请求似乎至少可以按预期工作(尽管当然没有办法添加角色):。这是我刚刚提到的代码编辑的 curl 结果。
没有用户名和密码:
密码错误:
使用以下命令的正确密码和用户名现在返回我通常期望的端点的完整响应(省略)。
java - 如何从自己的自动配置中使用 WebMvcConfigurationSupport
我想添加Converter
s via FormattingConversionService
,这需要有一个 @Configuration 类扩展WebMvcConfigurationSupport
:
当直接从项目中使用@Configuration 时它工作得很好,但是需要将此逻辑添加到我们自己的逻辑中,boot-starter
这样就不需要在整个项目中重复代码。
问题是,当这个 @Configuration 被迁移到一个启动项目时,然后
mvcConversionService()
没有被执行,并且- RestControllers 路由被破坏(即没有正确映射请求)。
如何解决这个问题?注意使用WebMvcConfigurationSupport
不是硬性要求。从代码摘录中可以看出,最终目标是将某些枚举配置为不区分大小写地被其余控制器接受。
编辑:应该添加自动配置项目已正确设置,因为@Configuration
同一包中的其他类WebAutoConfig.java
正在执行。认为这个问题与如何从自动配置中处理扩展WebMvcConfigurationSupport
(或WebMvcConfigurerAdapter
就此而言)的配置类有关。
Edit2:到目前为止,我设法开始工作的唯一方法是从 using 项目扩展配置类:
但这不再是真正的自动配置。
java - 扩展抽象控制器的控制器中方法的自定义注释
我所要做的很简单,使用拦截器,但我真的希望有一个基于注释的更优雅的解决方案。问题是我的“解决方案”并没有真正起作用,我不知道为什么。也许这甚至是不可能的。
我的基本堆栈是:spring boot 1.4.1:
- spring-boot-starter-web
- spring-boot-starter-aop
- spring-boot-starter-jdbc
- spring-boot-starter-缓存
spring-beans 4.3.4 和其他各种实用程序和测试 jar。
我有几个扩展抽象控制器的控制器。这个抽象控制器必须准备一个连接,然后每个控制器都使用其自己的特定实现,放置在acquire()方法中。有时,一些 cron 作业会达到此端点。我们想对一些控制器/作业进行审计,但不一定是全部。所以我正在考虑在审计应该在的地方添加一个自定义注释。
需要审核的实施:
不需要审核的实施
我的 JobAudit 注释:
和方面类:
我试图将我的注释放在各种服务类上并且它有效。但不是在acquire()方法上。这里肯定有问题。我想不通是什么...
jquery - 如何为数据表匹配的内容设置背景颜色
如何为数据表匹配的内容设置背景颜色,如进度、删除、活动、待定等。匹配的内容没有类和 id。
例子:
java - 为什么我能够使用 Java Spring Security 中的密码哈希进行身份验证
我正在使用spring-boot-starter-security
. 我将我的配置WebSecurityConfigation
为使用DaoAuthenticationProvider
提供程序和BCryptPasswordEncoder
身份验证。该UserDetailsService
实现还返回一个字段设置为实际哈希的User
对象。password
它似乎工作正常。但是我注意到我可以使用密码或哈希成功进行身份验证。
例如,密码本身是一个生成的 UUID 51a80a6a-8618-4583-98d2-d77d103a62c6
,它被编码为$2a$10$u4OSZf7B9yJvQ5UYNNpy7O4f3g0gfUMl2Xmm3h282W.3emSN3WqxO
.
完整的网络安全配置:
为什么我能够使用两个字符串进行身份验证?我做错了什么,或者这是预期的还是一些配置?我在文档中找不到任何内容。