当前位置: 首页 > 知识库问答 >
问题:

Spring靴创建自己的启动器

岳池暝
2023-03-14

我将遵循“Pro Spring Boot”一书中的“扩展Spring Boot应用程序”一章。在本章中,作者首先解释如何创建自己的spring boot starter-。源代码可以在这里找到。我对maven和spring都是新手。

如果我使用与编写器1.3.3相同的Spring启动版本,它可以正常工作。释放。但是它不适用于当前版本的Spring引导,我想让它适用于当前版本。

基本文件夹结构:

**/journal/
|-- spring-boot-journal
|   |-- src
|   |-- pom.xml
|-- journal-spring-boot-autoconfigure
|   |-- src
|   |-- pom.xml
|-- journal-spring-boot-starter
|   |-- src
|   |-- pom.xml
|-- pom.xml

当使用Spring引导版本1.4.2时,执行'**/Journal/mvn清洁包-DskipTest=true'后,我得到的错误。释放而不是1.3.3。发布是:

**/日志Spring Boot自动配置/src/**/journalaautoconfiguration。java找不到符号:类JournalRepository

从子模块sping-boo-Journal导入类不再工作。Spring Boot文档没有说明如何从-sping-boot-自动配置模块中的子模块导入。我将如何做/修复这个在当前版本的Spring Boot(1.4.2.发布)?

我注意到罐子包装之间的差异,这可以解释错误:

1.4.2.发布:BOOT-INF/class/com/apress/Spring/repository/Journalepository.class

1.3.3。发布: com/apress/Spring/repository/Journal nalRepository.class

共有1个答案

戈睿识
2023-03-14

其中Journal nalRepository必须保持为模块而不是完全成熟的Spring Boot应用程序的模块。看看源代码,情况显然不是这样,所以我要联系费利佩,看看是否可以改变。

在1.4中(正如您自己所发现的那样),包装已经改变,以强制执行这一点:我们现在不再将类放在“简单jar”的常规位置,而是将它们放在一个单独的位置,以使事情保持一致(您也不会将war用作库依赖项)。

maven插件的更新文档解释了如何使用分类器,从而使主要工件保持一个简单的库

 类似资料:
  • 如果您在开发共享库的公司工作,或者您在开源或商业库中工作,则可能需要开发自己的自动配置。 自动配置类可以捆绑在外部jar中,仍然可以通过Spring Boot获取。 自动配置可以与“启动器”相关联,该“启动器”提供自动配置代码以及您将使用它的典型库。 我们首先介绍了构建自己的自动配置需要了解的内容,然后我们将继续介绍创建自定义启动器所需的典型步骤。 可以使用演示项目来展示如何逐步创建启动器。 4.

  • 在过去的7天里,我一直在为我的MySQL基础开发EER图模型。这是一个相当复杂的模型,有很多连接和属性。现在我知道,如果您在application.properties中使用spring.jpa.hibernate.ddl-auto=更新,Spring Boot会根据您的实体类(包括外键和其他设置)自动创建表,但是在提供良好的凭据后是否可以创建实体类基于表和模式的DataSource对象? 关键是

  • 如果你只需要掌控一个应用的全部的消息和触发的事件,那么使用默认的**/**命名空间即可。如果你想要利用第三方代码,或者分享你的代码给别人,http://socket.io提供了一种命名一个socket的途径。 使用多路由控制一条单一的连接是有好处的。比如下方的示例代码,客户端发起两个WebSocket连接,而服务器端使用多路由技术仅仅只需要建立一个连接。 服务器端(app.js) var io =

  • 当我们使用术语"类库"时,我们一般指的是位于libraries 文件夹中的类,它们在wiki的"类库参考"这个板块被讨论.在当前这个话题中,我们将讨论如何在 application/libraries 文件夹中建立你自己的类库,并使它们与全框架的资源维持分离. 作为一个额外的功能,当你需要在原始类中简单地添加一些功能时,CodeIgniter能使你的类库extend 自原始类.你甚至可以通过在ap

  • 问题内容: 我无法启动启动时自动启动数据库架构的Spring Boot。 这是我的application.properties: 这是我的Application.java: 这是一个示例实体: 有什么想法我做错了吗? 问题答案: 有几种可能的原因: 您的实体类位于与之相对的同一个子包中,或者在一个子包中,如果没有,则您的spring应用不会看到它们,因此不会在db中创建任何内容 检查您的配置,似乎