@Autowire从外部jar创建的spring bean?

我有一个已创建的模块/ jar,正在用作util 库。我在那里创建了一个服务,如下所示:

@Service

public class PermissionsService { ... }

…它位于以下包中的位置:com.inin.architect.permissions和我的主应用程序中,我正在引用/加载此jar(即,设置为该应用程序的Maven POM.xml文件中的依赖项),例如所以:

<dependency>

<groupId>com.inin.architect</groupId>

<artifactId>permissions</artifactId>

<version>1.0-SNAPSHOT</version>

</dependency>

在应用程序中,我想使用该服务,例如:

@Autowired

PermissionsService permissions

在应用程序的spring设置中,我得到了以下信息:

@Configuration

@EnableWebMvc

@ComponentScan(basePackages = { "com.inin.generator", "com.inin.architect.permissions" })

public class WebConfig extends WebMvcConfigurerAdapter implements ServletContextAware { }

但是,当我在tomcat下运行我的应用程序时,它抱怨没有PermissionsService的bean :“ org.springframework.beans.factory.NoSuchBeanDefinitionException:没有合格的bean类型……”

那么,如何将bean从lib引入到我的应用程序中呢?当然有办法。你是否必须将库设置为完整的Spring MVC应用程序,这样才能正常工作?即你是否也必须在lib中安装@Configuration和@ComponentScan?

回答:

你必须至少扫描包含要注入的类的软件包。例如,使用Spring 4注释:

@Configuration

@ComponentScan("com.package.where.my.class.is")

class Config {

...

}

这与XML配置的原理相同。

以上是 @Autowire从外部jar创建的spring bean? 的全部内容, 来源链接: utcz.com/qa/418388.html

回到顶部