我的用例是通过注释方法在控制器方法之前运行自定义代码。
HandlerInterceptor似乎是一个不错的选择,但似乎不可能将依赖项注入其中,因为它需要在创建上下文之前注册。
到目前为止,我发现的所有示例都使用空构造函数(请参见Spring Boot添加超文本传输协议请求拦截器)或配置中的自动配线属性,这些属性失败是因为我在相同的配置中声明了依赖bean(请求的bean当前正在创建中:是否有不可解析的循环引用?)。
有没有更好的方法不涉及AOP?
基于上面M的答案ạnh,如果使用组件扫描来注入依赖项,那么可以在WebConfig中自动连接
@Configuration
public WebConfig extends WebMvcConfigurerAdapater {
@Autowired
DependentBean dependentBean;
@Bean
public CustomInterceptor customInterceptor() {
return new CustomInterceptor(dependentBean);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(customInterceptor());
}
}
假设您的拦截器具有如下构造函数依赖关系:
public class CustomInterceptor extends HandlerInterceptor {
private final DependentBean bean;
public CustomInterceptor(DependentBean bean) {
this.bean = bean;
}
}
然后你可以这样注册你的处理器:
@Configuration
public WebConfig extends WebMvcConfigurerAdapater {
@Bean
public DependentBean dependentBean() {
return new DependentBean();
}
@Bean
public CustomInterceptor customInterceptor() {
return new CustomInterceptor(dependentBean());
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(customInterceptor());
}
}
@Configuration
将确保每个Bean
方法调用返回相同的Bean实例
我正试图在计算机上实现这个例子https://developer.android.com/jetpack/docs/guide.这就解释了Android应用程序的结构。 当我使用相同的代码时,我会出现以下错误。 我可以找出这个错误与 当我为ViewModel编写默认的零输入构造函数时,我得到了以下错误。 我想不出这个错误的原因和解决方法。
我有一个自定义类,它有一个参数化构造函数 因此,实例化时需要3个参数。如果我想将这个类作为依赖项添加,我发现在Spring中没有直接的方法可以做到这一点。 我知道我可以简单地创建一个类的新实例并使用它的方法。但是我找不到任何直接的方法将这个类注入我的另一个类,即Rest控制器。 需要注意的是:所有3个参数都需要在运行时传递。我不能从属性文件中使用它们 即使Spring中没有直接的方法,我也想知道定
我有我的,我想注入它。我想使用构造函数注入,因为我是这个类的所有者: 问题是,当触发时,该构造函数的参数(即依赖项)将作为附加项从中检索。所以我的问题是,如何将从检索的这些参数提供给我的构造函数注入? 谢谢你。
我正在使用spring官方教程中的示例进行实验,并且对此代码有一个依赖关系: https://github.com/spring-guides/gs-async-method/tree/master/complete 如果您查看类上的代码,我有两个问题: 当服务器启动时,如果我在这个类的构造函数中放置一个断点,就像在构造函数中一样,是由spring使用配置的bean提供的。但是,构造函数上没有注释
我想知道如何在ASP中处理依赖注入。NET核心,用于同时具有对象和字符串作为参数的类型。由于字符串无法注册到DI框架,我目前正在使用implementationfactory并使用服务定位器模式,还有其他方法吗?是否有类似于Autofac的命名参数的.WithParameter? Asp.net核心DI使得向DI框架注册一个类型变得容易(并且干净),对于那些已经向DI框架注册了参数的类型。 给定以
问题内容: 我发现我的构造函数开始看起来像这样: 不断增加的参数列表。由于“容器”是我的依赖项注入容器,所以为什么我不能这样做: 每堂课?不利之处是什么?如果执行此操作,则感觉就像我在使用精美的静态方法。请分享你对IoC和依赖注入疯狂的想法。 问题答案: 正确的是,如果将容器用作服务定位器,则它或多或少是光荣的静态工厂。由于种种原因,我认为这是一种反模式。 构造函数注入的奇妙好处之一是,它使违反单