如何配置 class,注入已经由 spring-boot 创建的内容并进行更改

How to have a configuration class, inject something already created by spring-boot and change it

我正在尝试扩展 activiti-spring-boot 以将其与 spring-security 集成。

这是我第一次同时使用 spring 和 spring-boot。在研究如何编写代码来做到这一点时,我得到了很多很好的结果。我感兴趣的是这个答案。

https://github.com/jbarrez/spring-boot-with-activiti-example/issues/5

我在那个 github 问题的最后做了 post 我自己的问题。

我想问的是,

从概念上讲是什么意思

"The regular Spring way: have a @Configuration class and inject the ProcessEngine or ProcessEngineConfiguration bean that is created by Spring Boot."

这是否意味着 Spring Boot 已经配置了 ProcessEngine 或 ProcessEngineConfiguration bean 并且我可以通过某种方式注入它们并继续配置它们而不会丢失 Spring Boot 已经配置的内容?

这就是依赖注入的工作原理吗?这是一个概念性问题,因为我认为依赖注入只是一种用该接口的实现替换接口的方法。我的理解是,例如,如果我替换 ProcessEngineConfiguration bean,我将丢失 Spring-Boot 完成的所有配置,并且必须重新配置它们。

请记住,我对任何事情的理解 Spring 很可能是错误的!

TIA

*说明一下:activiti-spring-boot是一个集成activiti和spring使用spring启动的入门项目。它正在使用基本身份验证。我想使用基于令牌的身份验证,所以我实际上尝试使用另一个名为 spring-boot-starter- 的 spring-boot 东西将 activit-spring-boot 与 spring 安全性集成安全。

我的潜在答案

目前可以看到代码here。除了必须在每一行缩进 4 个空格的痛苦之外,我不知道如何将代码放在这里。

所以我所做的是扩展 class 并将自定义功能添加到 class.

中被覆盖的方法之一

然后有一个@Configuration class,其中使用@Bean 注释而不是父class 注入上面的class。我认为这是理解的关键

"The regular Spring way: have a @Configuration class and inject the ProcessEngine or ProcessEngineConfiguration bean that is created by Spring Boot."

虽然我做的和上面的不完全一样。我所做的可以概括为

"Have a class that extend ProcessEngineFactoryBean and change one method to add custom user and group managers. And then in configuration class, use this class instead of ProcessEngineFactoryBean."

因为我没有重新配置 spring-boot 配置的任何内容。只需用我自己的 class 更改 ProcessEngineFactoryBean 即可扩展它。在没有 disturbing/changing 现有配置的情况下,我确实实现了我需要实现的目标。

话虽如此,但代码完成了它需要做的事情。它仍然没有按预期工作。因此,我 post 在 Activiti 论坛中提出了一个问题。