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

Spring bean未从自定义库自动连接

惠泳
2023-03-14

我创建了自己的库(com.custom.mylib),它返回一个字符串,如下所示。

@Component
public class MyLibrary{

    @Value("${str.message}")
    private String message; //This val should come from app which is going to use this lib
    public String readMessage() {
        return message;
    }

我创建了一个将使用上述库的项目。我已将lib作为pom依赖项包含在内。但是当我尝试从我的应用程序调用库方法时。我得到了下面的错误。如何解决它?

   @Autowired
    private MyLibrary myLibrary;

请考虑在您的配置中定义一个“com.custom.mylog.MyLibrary”类型的bean。

我在application.properties文件中也有下面的内容,这样库就可以选择这个值

str.message=Hello world

共有2个答案

鲁昕
2023-03-14

由于它必须用作外部库,您可以通过@Configuration文件实例化它:

@Configuration
public class AppConfiguration {

    @Bean
    public MyLibrary createMyLibraryInstance() {
        return new MyLibrary();
    }
}

我使用的规则如下(这不是通用规则):

  • 在域类(控制器、服务)中:在构造函数中使用@Autowired。这是注入依赖项的重新命令方式。
  • 您希望使用外部类:实现带有@Configuration注释的Java配置,以将外部类实例化为bean。
  • 你想创建自定义实用程序类 :用@Component装饰它。
  • 当您有多个实现时,请使用@Qualifier并在@Configuration类中定义bean。
郑功
2023-03-14

看来我找到解决办法了。我需要创建META-INF文件并执行< code > org . spring framework . boot . auto configure . enable auto configuration =

这里给出的是Spring Boot:来自库项目的autowire bean

 类似资料:
  • 我有一个用Java验证框架注释的模型类。 我已经编写了一个自定义验证器类“ClientValidator”,以根据业务需求验证下面的模型类。 如您所见,我的自定义验证器与Springbean自动连接,它在生产代码中运行良好。但是,当我尝试为模型对象客户机编写单元测试时,Spring autowired字段IClientService服务为null,并且不是自动连接的。由于我无法访问实例化的自定义验

  • 在Springs的最新版本中,我们可以使用注释作为自动连接bean。这将使用bean的类型(或构造函数,如果应用于它的话)自动连接bean。有什么方法可以使用基于bean名称的注释吗?我们在Spring的XML文件中没有注释autowire=“byName”?

  • 我有一个Spring Boot应用程序,它包含一个用户类——所有字段都有标准的JSR-303注释(@NotNull、@Size等),验证工作正常。 但是,当我向User添加自定义验证时,我无法将依赖项注入自定义验证器: @uniqueUsername注释声明为: 注释字段: 以及验证程序的用法: 问题是UserRepository在UniqueUsernameValidator中没有自动配置。字段

  • 词库管理 用户可以自定义词库,自定义词也可以定义近义词。自定义词和近义词会用来优化分词、匹配算法等,可以提高问答精准度。 点击“添加词库”,为词库起一个名字,比如“课程学习”,如下图: 点击“确认”进入词库编辑页面,可以添加词库下的词汇,并配置每一个词的近义词。 也可进行词库的批量添加,在词库管理界面点击批量操作对词库进行批量导入、批量导出、批量删除等。

  • 我正在使用< code>MapStruct,为此我必须定义一个具有相应映射函数的接口。通过使用用< code > @ before mapping < code > 和@AfterMapping注释的< code>default方法,可以实现一些逻辑。在这样一个带注释的默认方法中,我想使用我的SpringBoot应用程序的一个配置类。我该怎么做?我可以将这样的配置(bean)自动连接到接口吗?这样

  • 我做了这个自定义函数,并把它放在全局之外,这通常会工作。我也试着在主异步木偶函数中移动它,但也不起作用。这是一个简单的函数。在每个page evaluate函数中,我调用它并传递选择器。但是,它的说法没有定义和promise拒绝,这是奇怪的,因为函数不是promise....请帮助 我尝试将函数转换为异步函数,添加了一个新的参数页。然后,我将async添加到我的评估函数中,然后将puppeteer