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

Spring Boot:库项目中的autowire bean

戚成礼
2023-03-14

我正在努力从我的自定义库中自动生成bean,这是和Gradle一起导入的。读了几个类似的题目后,我仍然无法找到解决方法。

我有一个Spring Boot项目,它依赖于另一个项目(我的带有组件、存储库等的自定义库)。这个库是一个Spring不可运行的jar,主要由域实体和存储库组成。它没有可运行的Application.Class和任何属性...

错误:

Com.MyProject.CustomLibrary.Configuration.CustomUserDetailsService中的构造函数的参数0需要类型为“Com.MyProject.CustomLibrary.Configuration.UserRepository”的bean,但找不到该bean。

我甚至尝试设置“order”,显式加载它(使用ScanBasePackageClasses),使用包和标记类进行扫描,添加其他EnableJPararePository注释,但没有任何效果...

package runnableProject.application;

import runnableProject.application.configuration.ServerConfigurationReference.class
import com.myProject.customLibrary.SharedReference.class

//@SpringBootApplication(scanBasePackages = {"com.myProject.customLibrary", "runnableProject.configuration"}) 
//@EnableJpaRepositories("com.myProject.customLibrary")  

@SpringBootApplication(scanBasePackageClasses = {SharedReference.class, ServerConfigurationReference.class})   
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}

库中的类:

package com.myProject.customLibrary.configuration;

import com.myProject.customLibrary.configuration.UserRepository.class;

@Service
public class CustomUserDetailsService implements UserDetailsService {
    private UserRepository userRepository;    

    @Autowired
    public CustomUserDetailsService(UserRepository userRepository) {
        this.userRepository = userRepository;       
    }
...

package myProject.customLibrary.configuration;

@Repository
public interface UserRepository extends CustomRepository<User> {
    User findByLoginAndStatus(String var1, Status var2);

    ...
}

共有1个答案

段干麒
2023-03-14

刚找到解决办法。我没有定义要从单独的库中扫描的基本包,而是在这个库中创建了配置类,并将其导入到我的主MyApplication.class中:

java prettyprint-override">package runnableProject.application;    

import com.myProject.customLibrary.configuration.SharedConfigurationReference.class

@SpringBootApplication
@Import(SharedConfigurationReference.class)
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}
package com.myProject.customLibrary.configuration;

@Configuration
@ComponentScan("com.myProject.customLibrary.configuration")
@EnableJpaRepositories("com.myProject.customLibrary.configuration.repository")
@EntityScan("com.myProject.customLibrary.configuration.domain")
public class SharedConfigurationReference {}
 类似资料:
  • 本文向大家介绍SpringBoot项目中使用AOP的方法,包括了SpringBoot项目中使用AOP的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了SpringBoot项目中使用AOP的方法,分享给大家,具体如下: 1.概述 将通用的逻辑用AOP技术实现可以极大的简化程序的编写,例如验签、鉴权等。Spring的声明式事务也是通过AOP技术实现的。 具体的代码参照 示例项目 https:/

  • 在尝试运行我的第一个HelloWorld应用程序时,我发现了以下异常: org.springframework.beans.factory.beanDefinitionStoreException:未能读取候选组件类嵌套异常为java.lang.IllegalStateException:由于找不到org/springframework/dao/dataAccessException,无法计算or

  • 当试图在eclipse上运行spring boot maven项目时,会出现错误。“启动配置附件引用不存在的项目演示2.”请任何人帮忙修正那个错误。

  • 本文向大家介绍在SpringBoot项目中利用maven的generate插件,包括了在SpringBoot项目中利用maven的generate插件的使用技巧和注意事项,需要的朋友参考一下 使用maven 插件 generate生成MyBatis相关文件 在项目中增加 maven 依赖 - mybatis-spring-boot-starter - mysql-connector-java -

  • 本文向大家介绍SpringBoot项目中使用Mockito的示例代码,包括了SpringBoot项目中使用Mockito的示例代码的使用技巧和注意事项,需要的朋友参考一下 Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spring Boot可以跟BDD(Behavier Driven Development)工

  • 我在eclipse中初始化了一个SpringBoot Rest,并使其成为一个动态Web项目。遵循了三轮胎原则,并在控制器类中声明了endpointURL。项目部署良好,但一旦我尝试访问返回404错误的endpoint。请参阅下面的示例。二手编译器-Maven和服务器-apache tomcat 9.0 主类.java } 示例控制器类

  • 在我的Android Studio项目中,我有两个子项目/模块:一个Android应用程序()和一个Android库项目()。依赖于。到目前为止还不错。 但是,需要导入AAR库才能正常工作。 因此我的配置如下: 包含 包含 现在,要包含我使用下面详细介绍的方法: 如何使用新的Gradle Android Build系统手动包含外部aar包 因此,在我的的中,我基本上有: 显然,我将dependen

  • 我的应用程序使用一个库项目“核心项目”和应用程序核心,然后针对每个支持的设备的特殊性进行小项目“子项目”,即。亚马逊Fire TV、Kindle平板电脑、普通谷歌平板电脑、手机等。 比方说,我有一个自定义视图类,它以编程方式扩展布局。两者都在核心项目上: 然而,自定义视图在核心项目res/layout下不断膨胀另一个视图(毕竟听起来合乎逻辑,因为它们都位于同一个项目中)。 有没有办法改变这种行为?