如何自动装配Spring类的bean

3

我可以使用显式的bean工厂方法创建bean。

package org.package;

import org.springframework.security.web.PortResolver;
import org.springframework.security.web.PortResolverImpl;


@Configuration
public Configuration {

    @Bean
        public PortResolver portResolver(){
            return new PortResolverImpl();
        }

}

我的目标是避免使用工厂方法。


1
使用@ComponentPortResolveImpl类添加注解,并使您的@Configuration在其包中进行@ComponentScan - Sotirios Delimanolis
@SotiriosDelimanolis 你应该把它发布为答案。 - Thorn G
正如您所注意到的,这个类来自Spring库。我不确定@Component是什么意思。您能解释一下吗? - fashuser
1个回答

1
如果您不想使用工厂方法,可以使用注解@Component为您的类进行标注,并使您的@Configuration@ComponentScan其所在的包。
当Spring扫描该包时,它将找到您的类,使用默认构造函数(或使用@Inject@Autowired注释的构造函数)并使用它来创建您的类的实例。然后,Spring将把该实例添加到其上下文中。
因为PortResolveImpl不受您的控制,所以您需要使用@Bean工厂方法。

正如您所指出的,这不是自定义类,而是来自Spring库的类,并且没有被制作为组件。 - user1459144
@user1459144 那方面没有变通方法。您需要编写一个 @Bean 工厂方法或其他进程(监听器)将其添加到上下文中。如果没有 @Component,则无法自动执行此操作。 - Sotirios Delimanolis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接