问题标签 [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.
maven - 不兼容的 Spring 依赖项(调用 AnnotationRepositoryConfigurationSource 构造函数时出现 NoSuchMethodError)
添加持久性后,我无法再启动我的 Spring Boot 应用程序。错误是:
我将其追溯到AnnotationRepositoryConfigurationSource所在的spring-data-commons中的更改,并且在版本 1.13.5 中添加了一个额外的构造函数参数,并且spring-boot-starter-data应该使用具有相同构造函数签名的版本 1.13.7 -jpa在版本 1.5.7 中。而且我们只使用版本号为 1.5.7 的 Spring Boot 依赖项。
于是我构建了依赖树,奇怪的是在 1.13.4 版本中找到了spring-data-commons,而不是 1.13.7(倒数第三行):
上树你可以看到spring-data-jpa包含在 1.11.4 版本中,而根据Spring Boot Dependency Annex,它应该是 1.11.7 版本。这似乎导致了错误。但是我们不直接通过我们的 pom 文件依赖spring-data-jpa 。
所以我不知道这个旧版本是如何进入依赖树的。spring-boot-starter-data-jpa的 pom不表示任何版本号。
spring-data-cassandra - spring-data-cassandra-2.0.0.RELEASE + spring-boot-starter-web-1.5.7.RELEASE 导致 java.lang.ClassNotFoundException
我使用 spring-data-cassandra 的最新可用版本,即 2.0.0.RELEASE 和 spring-boot-starter-web 的最新版本 - 1.5.7.RELEASE
我可以毫无问题地构建项目,但是应用程序不会以以下异常开始:
根本原因:
看起来问题出在 spring-boot-autoconfigure-1.5.7.RELEASE 中,如果我将 spring-boot-starter-web 更新为 2.0.0.M5:
然后应用程序启动没有任何错误。
有什么方法可以使用 spring-data-cassandra 的最新可用版本以及 spring-boot-starter-web 还是我应该等待 spring-boot-starter-web:2.0.0 的 GA?
先感谢您 !
spring - 带有 axon-spring-boot-starter 的 NoHandlerForCommandException
我正在使用 Axon + Spring Boot 创建一个简单的应用程序,只是为了确保我在实际项目中使用 Axon 框架之前了解它的基本组件。TaskAggregate 类中有一个用@CommandHandler 注释的方法,当我通过CommandGateway 发送命令时应该调用该方法,但是在运行应用程序后出现异常:
根据文档,@CommandHandler 注释应该足以将命令处理程序订阅到命令总线。我想我一定是错过了什么。你能看看下面的代码并指出我正确的方向吗?
pom.xml
应用程序.java
创建任务命令.java
任务创建事件.java
任务聚合.java
提前致谢。
spring-boot - 自定义 AbstractEndpoint 监听“/”(根)
我已经实现了一个以我喜欢的方式配置 Swagger 的启动器。此外,我想将每个调用重定向到应用程序的根 URL(例如localhost:8080
)到/swagger-ui.html
. 因此,我添加了一个自己的AbstractEndpoint
,它在类中实例化@Configuration
如下:
相应的类如下所示:
和
如中所述public RootEndpoint()
,自定义端点绑定到/root
. 不幸的是,我不能指定super("");
或者super("/");
因为这些值会引发异常(Id must only contains letters, numbers and '_'
)。
如何使用@Configuration
文件实例化 bean 来实现让自定义端点在启动器中监听根 URL?
java - 从@EnableRedisHttpSession 移动到@EnableMongoHttpSession 接收异常
我有一个使用 Redis HttpSession 存储的 Java 8 spring boot 项目。但是,我想将其更改为使用 Mongo HttpSession 存储。我改变了我的深度:
到:
并且我将相应的配置注解从@EnableRedisHttpSession 更改为@EnableMongoHttpSession。
但是,当我运行以下命令时,服务会输出如下所示的堆栈跟踪。
堆栈跟踪如下:
另外,仅供参考,这是运行第一个命令后在 mongo 中显示的内容:
现在请记住,当我使用 Redis 时,所有这些都可以正常工作。
谢谢。
spring-boot - Spring Boot 缓存在 @PostConstruct 中不起作用
我正在构建一个“类缓存”,其中包含我想稍后调用的类。
主要目标是我不希望每次需要类实例时都扫描上下文。
首先评估缓存,我将缓存方法@Autowired放在@RestController中,效果很好。当我调用 rest 方法时,缓存被填充。
之后,我将@Autowired对象移至@Service,创建了一种自行填充缓存的方法。但这不起作用。调用@PostConstructor方法时不会填充缓存。
如何使用必须从应用程序开始的服务或组件正确填充缓存。
提前致谢。
编辑:
我在这里找到了一个可能的解决方案:https ://stackoverflow.com/a/28311225/1703546
比我更改了@Service代码以手动放置缓存而不是使用@Cacheable魔术抽象。
现在的课是这样的。
现在缓存已正确填充,但问题是,这是最好的解决方案吗?
谢谢。
spring-boot - Spring Boot Security 导致 java.lang.NoClassDefFoundError: org/springframework/security/web/access/WebInvocationPrivilegeEvaluator
我喜欢在我的 web 项目中添加 spring 安全性,当我添加安全性并扩展WebSecurityConfigurerAdapter
时,我在启动 tomcat 服务器时收到以下错误:
这是我的 pom.xml:
我扩展了WebSecurityConfigurerAdapter
:
我尝试按照Spring Security NoClassDefFoundError中的建议添加依赖项:
并得到错误:
我试图将这两行添加到 application.properties
没有任何效果,有人解决了这个问题吗?
谢谢您的帮助。
java - 更新我的 spring 版本会阻止 gradle 解析 spring-boot-starter
我有一个spring-boot项目。当我尝试启动应用程序时,我遇到了以下问题。
在我的研究中,我发现了一个听起来与我的问题完全一样的错误报告。
https://jira.spring.io/browse/SPR-16149
问题似乎是某种未正确处理的较低级别的异常。从外观上看,这是一个不应该在用户空间中看到的异常。也有一个修复它。伟大的!我对修复做了一些更多的研究,结果证明你可以独立于 sprig boot 升级你的 spring 版本。我已将以下内容应用于我的 build.gradle
但是,当我尝试使用这个新版本启动应用程序时,我得到以下信息。
看来我的项目无法再解析 spring-boot-starter 了。我读对了吗?为什么我不能更新我的spring版本并使用现有版本的spring boot?它们有什么关系?
spring-boot - spring-boot-starter-quartz jdbc 示例
从 spring-boot 2.xx 开始,他们开始提供 spring-boot-starter-quartz,这很棒!开箱即用,它进行内存存储。我想将其更改为集群环境,但我认为配置存在问题,主要是因为我需要将 qrtz_ 表放在与默认数据源不同的模式中。有没有人有使用备用数据源的例子?我目前正在尝试设置属性字段(如下所示),但就像配置 bean 没有拾取它们一样。任何帮助表示赞赏。
配置
日志输出
java - Spring boot starter web - 制作一个配置bean,首先更改初始化的属性
我在我的 Spring Boot 应用程序中使用嵌入式 tomcat。我的要求是从 db 以及属性文件中读取所有配置属性。
我设法从 db 读取属性并使用 @Configuration bean 将属性附加到 MutablePropertySources,如下所示:
问题是这个配置是在servlet(例如 cxf servlet)注册后初始化的。以下配置是从我的 application.properties 文件中的 cxf.path=/api2 读取的:
2017-11-10 09:41:41.029 INFO 7880 --- [ost-startStop-1] osbwservlet.ServletRegistrationBean:映射 servlet:'CXFServlet' 到 [/api2/ ]*
如您所见,当我添加配置属性时,为时已晚。在我添加我的配置之前会进行一些初始化。
如何确保我的 bean (PropertiesConf) 在启动期间首先初始化并更改属性,以便它们在系统范围内适用于所有 bean?
目前我正在向我所有的 bean 添加以下 DependsOn 注释,这非常讨厌......
但是我仍然对servlet等有问题。
什么是正确的弹簧方式来做到这一点