问题标签 [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.

0 投票
0 回答
541 浏览

java - 缺少启动器的 Spring Boot 应用程序失败启动,这是不想要的

我想做一个简单的 Spring 应用程序。我需要的是一个只对我的数据库进行一些查询的应用程序。现在我刚刚开始使用 Spring Boot,并想用它来学习目的。我只知道 Spring Boot 在理论上是如何工作的。

所以我有我的 pom.xml,我有 2 个启动器。默认的 spring-boot-starter 和 spring-boot-starter-data-jdbc。

这是我的 pom.xml

然后我有我的应用程序类。这个类在树的头部,所以我放了@ComponentScan。我在这里需要数据源的自动装配,因为我现在想保持简单。

有我的代码:

然后我有我的 AppConfig 类,我在其中创建 DataSource Bean。就这个:

发生的奇怪事情是,当我启动应用程序时,我在其他我不需要的启动器上得到 som FileNotFoundException,如集成、Web、安全等......

这是堆栈跟踪:

我做错了什么?

0 投票
0 回答
40 浏览

spring - 如何使用 Spring Boot Starter Data Cassandra 同时连接多个 cassandra 集群

我需要根据输入数据连接到不同的 cassandra 集群。我知道如何通过为每个集群手动创建cassandraTemplate来实现这一点。但是spring-boot-starter-data-cassandra呢?它是否允许实现相同的行为?

0 投票
0 回答
1194 浏览

spring - 如何使用 maven 打包没有主类的自定义 spring-boot 启动器

我创建了一个自定义的 spring-boot 启动项目,并希望将其部署到远程 maven 存储库。当我运行时mvn clean package deploy,我收到一条错误消息:

事实上,我认为 spring-boot 启动项目没有必要有一个主类,因为它永远不会单独运行。

大家可以帮忙解释一下我如何打包这个项目吗?

0 投票
1 回答
1222 浏览

java - 如何在启动时设置 Cron Quartz 触发器

我正在设置一些 CronTriggers 以在不同时间启动一些不同的批处理作业。

我曾尝试在线搜索,但只能找到关于如何在网络电话或不同服务类别中安排时间的答案。我希望在启动时安排这些触发器。

我怎样才能做到这一点?

我已经通过各自的构建器构建了触发器和 JobDetails。

我正在使用 Spring-boot-starter-quartz

0 投票
0 回答
39 浏览

spring-boot - 自定义启动器提供 http 端点的最佳实践是什么

假设我有一个自定义启动器:

将其导入项目后,您将拥有短信验证功能。它将按照惯例提供一些 bean。入门项目中的以下代码片段按约定(使用@Conditionaland @Bean)提供了一个 SmsVerificationCodeSender 实例。

我的问题是如何按惯例提供 http 端点?

目前,我通过使用@ComponentScan

我想知道这是在启动项目中执行此操作的正确方法吗?

1)写一个 @RestController 。
2)设置一个 @ComponentScan 。

我有这个担心只是因为我没有用 注释其他 bean @Service/@Repository,而是通过使用@Bean和以编程方式提供 bean 实例@Conditional

此外,如果您想自定义给定的路径,这会很困难@RequestMapping

这是我想要实现的目标:

1) starter 如何按照约定提供 http 端点?
2) 如果用户定义了他/她自己的端点,它应该跳过默认的 http 端点
3) 它应该为用户提供一些配置选项,比如更改 URI 等

如果需要更多详细信息,您可以查看此repo 。

0 投票
2 回答
634 浏览

java - 我无法创建我的自定义 spring-boot 启动器

我尝试创建spring-boot-starter. spring-boot module我用这个 Gradle 文件创建了一个简单的文件:

还有一类:

它构建成功。但是如果我删除ApiSpringBootStarterApplication 类我会得到一个错误:

0 投票
0 回答
303 浏览

rest - 如何在 spring-boot-starter-data-rest 中测试 @RepositoryRestResource 自动生成的端点?

包括 spring-boot-starter-data-rest 和另一个持久性存储库(在我的情况下是 spring-boot-starter-data-mongodb),您在 REST 中自动拥有 CRUD 的端点(假设您有一个包含 main 方法的主类,用 @SpringBootApplication 注释在正确的级别上)为您创建。例如,当您访问http://locahost:8080/api/sampleEntities时,您会在 basePath 下获得一个带有 GET、PUT、POST、DELETE 等的端点,因为我有一个 SampleRepository 来管理 SampleEntity 实例。

如何在 JUnit 5 + Mockito + Spring Boot 中测试这些端点?

这是我当前的测试用例供参考,但我能看到的唯一端点是配置文件端点。

运行实际的应用程序并指向http://localhost:8080/api/sampleEntities工作正常。

实际的应用程序类如下所示:

有人可以给我一些关于如何构建我的测试类和方法以测试由 spring-boot-starter-data-rest 自动生成的休息端点的代码示例吗?

0 投票
3 回答
2057 浏览

java - 如何在 spring-boot 中禁用 spring-data-mongodb

我是 SpringBoot 的新手。我已经构建了一个简单的应用程序,它应该在开发环境中使用假数据,并在测试环境中连接到 MongoDb。开发环境没有 mongodb 设置。

我尝试使用 Spring Boot 限定符/配置文件来实现它。

我有一个主类,如下所示:

我有一个 DAO 接口 StudentDao.java

然后我为 DAO 创建了几个实现,一个用于伪造数据,一个用于来自 Mongo 的数据

FakeStudentDaoImpl.java

MongoStudentDaoImpl.java

MongoStudentRepo 是一个扩展 MongoRepository 的简单接口:

我的 POM 文件有以下依赖项:

当然,我还有其他控制器类。这在测试环境中运行良好,那里有一个 MongoDb,并且它能够连接到它。但是,当我尝试在本地环境中启动它时,它无法启动,因为它在启动时没有找到 MongoDb。

如何在本地环境中禁用 MongoDb 部分(并且只使用假数据)?我想让相同的代码在两种环境中工作。

提前致谢。

0 投票
0 回答
306 浏览

spring-boot - Spring AMQP 发送许多连接请求

我有一个 Spring-Boot 应用程序(Netflix Eureka),它应该连接到 rabbitMQ 以提供 logstash 的日志。如果 RabbitMQ 存在,一切都可以正常工作,但如果服务器不可用,它会每毫秒向 rabbitMQ 发送超过 20 个请求。

这是我的依赖项:

我已经尝试不使用弹簧重试,但这不是解决方案。

这是我对兔子的配置:

我想将重试次数减少到每秒 1 次。目前每毫秒有 20+

编辑:我正在玩这个,发现它在从云配置访问配置时也是如此。在将配置加载到错误的目的地之前,它会发送大量请求。由于大量请求,RAM 负载很重。

0 投票
1 回答
1077 浏览

spring-boot - 当项目没有自己的类时,Gradle“实现”依赖项是运行时范围的

我有一个用于自定义 Spring Boot Starter 的 Gradle 多项目构建。遵循 Spring Boot Starter 约定,我的类都在一个“自动配置”项目中,并且我有一个单独的“启动器”项目,它只引入使用自动配置所需的依赖项。

多项目构建生成 2 个不可运行的 jar,1 个用于自动配置子项目,1 个用于启动子项目。我使用这个启动器的新项目拉入了启动器 jar,但是当我使用来自传递依赖项的类时,我的项目在类路径的任何地方都找不到它们。

当我深入研究 starter jar 时,我发现它定义的所有依赖项都是 RUNTIME 范围的,这可以解释问题。我可以通过将启动器中的所有依赖项设置为“编译”而不是“实现”来“解决”问题,但我的理解是“编译”即将退出,并且“实现”依赖项应该是编译范围的反正。有人可以告诉我,将启动器依赖项定义为“实现”可能需要哪些额外的配置,而不会在生成的 jar 中将它们限定为“运行时”?

我的启动器/自动配置多项目gradle 文件:

我的启动子项目的构建文件:

如果我将上面的“实现”行更改为“编译”行,那么生成的 pom 文件就会停止将这 4 个依赖项设置为“运行时”范围,而是将它们正确地定义为“编译”。作为旁注,“编译项目”行工作得很好,只是当项目没有自己的类时,“实现”行似乎不像我期望的那样工作。

我的新项目对我的初学者的依赖: