问题标签 [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 应用程序失败启动,这是不想要的
我想做一个简单的 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、安全等......
这是堆栈跟踪:
我做错了什么?
spring - 如何使用 Spring Boot Starter Data Cassandra 同时连接多个 cassandra 集群
我需要根据输入数据连接到不同的 cassandra 集群。我知道如何通过为每个集群手动创建cassandraTemplate来实现这一点。但是spring-boot-starter-data-cassandra呢?它是否允许实现相同的行为?
spring - 如何使用 maven 打包没有主类的自定义 spring-boot 启动器
我创建了一个自定义的 spring-boot 启动项目,并希望将其部署到远程 maven 存储库。当我运行时mvn clean package deploy
,我收到一条错误消息:
事实上,我认为 spring-boot 启动项目没有必要有一个主类,因为它永远不会单独运行。
大家可以帮忙解释一下我如何打包这个项目吗?
java - 如何在启动时设置 Cron Quartz 触发器
我正在设置一些 CronTriggers 以在不同时间启动一些不同的批处理作业。
我曾尝试在线搜索,但只能找到关于如何在网络电话或不同服务类别中安排时间的答案。我希望在启动时安排这些触发器。
我怎样才能做到这一点?
我已经通过各自的构建器构建了触发器和 JobDetails。
我正在使用 Spring-boot-starter-quartz
spring-boot - 自定义启动器提供 http 端点的最佳实践是什么
假设我有一个自定义启动器:
将其导入项目后,您将拥有短信验证功能。它将按照惯例提供一些 bean。入门项目中的以下代码片段按约定(使用@Conditional
and @Bean
)提供了一个 SmsVerificationCodeSender 实例。
我的问题是如何按惯例提供 http 端点?
目前,我通过使用@ComponentScan
我想知道这是在启动项目中执行此操作的正确方法吗?
1)写一个 @RestController 。
2)设置一个 @ComponentScan 。
我有这个担心只是因为我没有用 注释其他 bean @Service/@Repository
,而是通过使用@Bean
和以编程方式提供 bean 实例@Conditional
此外,如果您想自定义给定的路径,这会很困难@RequestMapping
这是我想要实现的目标:
1) starter 如何按照约定提供 http 端点?
2) 如果用户定义了他/她自己的端点,它应该跳过默认的 http 端点
3) 它应该为用户提供一些配置选项,比如更改 URI 等
如果需要更多详细信息,您可以查看此repo 。
java - 我无法创建我的自定义 spring-boot 启动器
我尝试创建spring-boot-starter
. spring-boot module
我用这个 Gradle 文件创建了一个简单的文件:
还有一类:
它构建成功。但是如果我删除ApiSpringBootStarterApplication
类我会得到一个错误:
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 自动生成的休息端点的代码示例吗?
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 部分(并且只使用假数据)?我想让相同的代码在两种环境中工作。
提前致谢。
spring-boot - Spring AMQP 发送许多连接请求
我有一个 Spring-Boot 应用程序(Netflix Eureka),它应该连接到 rabbitMQ 以提供 logstash 的日志。如果 RabbitMQ 存在,一切都可以正常工作,但如果服务器不可用,它会每毫秒向 rabbitMQ 发送超过 20 个请求。
这是我的依赖项:
我已经尝试不使用弹簧重试,但这不是解决方案。
这是我对兔子的配置:
我想将重试次数减少到每秒 1 次。目前每毫秒有 20+
编辑:我正在玩这个,发现它在从云配置访问配置时也是如此。在将配置加载到错误的目的地之前,它会发送大量请求。由于大量请求,RAM 负载很重。
spring-boot - 当项目没有自己的类时,Gradle“实现”依赖项是运行时范围的
我有一个用于自定义 Spring Boot Starter 的 Gradle 多项目构建。遵循 Spring Boot Starter 约定,我的类都在一个“自动配置”项目中,并且我有一个单独的“启动器”项目,它只引入使用自动配置所需的依赖项。
多项目构建生成 2 个不可运行的 jar,1 个用于自动配置子项目,1 个用于启动子项目。我使用这个启动器的新项目拉入了启动器 jar,但是当我使用来自传递依赖项的类时,我的项目在类路径的任何地方都找不到它们。
当我深入研究 starter jar 时,我发现它定义的所有依赖项都是 RUNTIME 范围的,这可以解释问题。我可以通过将启动器中的所有依赖项设置为“编译”而不是“实现”来“解决”问题,但我的理解是“编译”即将退出,并且“实现”依赖项应该是编译范围的反正。有人可以告诉我,将启动器依赖项定义为“实现”可能需要哪些额外的配置,而不会在生成的 jar 中将它们限定为“运行时”?
我的启动器/自动配置多项目根gradle 文件:
我的启动子项目的构建文件:
如果我将上面的“实现”行更改为“编译”行,那么生成的 pom 文件就会停止将这 4 个依赖项设置为“运行时”范围,而是将它们正确地定义为“编译”。作为旁注,“编译项目”行工作得很好,只是当项目没有自己的类时,“实现”行似乎不像我期望的那样工作。
我的新项目对我的初学者的依赖: