我有一个Spring引导(1.4.3.RELEASE)应用程序,MySQL作为后端。将Spring Data与Oracle UCP和MySQL Java连接一起用于连接池。现在,尝试将其移至多模块项目。因此我的项目结构如下。
parent project
|---pom.xml -> This is a parent pom.
|---common
|---pom.xml
|---src
|---model
|---pom.xml
|---src
|---service(Interface only)
|---pom.xml
|---src
|---service Impl(Implementations only)
|---pom.xml
|---src
|---repository(Spring Data)
|---pom.xml
|---src
|---web
|---pom.xml
|---src
我的父pom.xml如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath />
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>test-parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>Test Project</name>
<description>Test components</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<version.spring.boot>1.4.3.RELEASE</version.spring.boot>
<version.mysql.connector>6.0.5</version.mysql.connector>
<version.slf4j>1.7.21</version.slf4j>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${version.spring.boot}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${version.slf4j}</version>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>cc-model</module>
<module>cc-common</module>
<module>cc-dbrepo</module>
<module>cc-dbservice</module>
<module>cc-dbserviceimpl</module>
<module>cc-web</module>
</modules>
</project>
Web中的Application.java:
@SpringBootApplication(scanBasePackages =
{ "com.test.dbrepo.service.impl", "com.test.db.service", "com.test.dbrepo.repository" })
public class DialerApplication {
web pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>com.cc.dialer</groupId>
<artifactId>cc-dbservice</artifactId>
<version>${project.version}</version>
</dependency>
在我的存储库pom.xml中,我有spring-data
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
我的DataSource代码和存储库位于存储库项目中。 我在Web模块中有我的Spring安全代码,它通过注入使用服务模块。
启动Web模块应用程序时出现以下错误。
使用名称&#39; webSecurityConfig创建bean时出错&#39;:不满意 通过字段“userDetailsService”表达的依赖关系;嵌套 例外是 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名称为&#39; userDetailsService&#39;:不满意的bean时出错 通过字段“用户服务”表达的依赖关系;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 属于&#39; com.cc.test.db.service.UserService&#39;的限定bean 可用:预计至少有1个符合autowire资格的bean 候选人。依赖注释: {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}
是否缺少其他配置。
启动时未发现service impl模块中的Bean。
由于
答案 0 :(得分:-1)
根据您的配置不扫描包com.cc.test.db.service。
添加它。
您的注释应如下所示:
@SpringBootApplication(scanBasePackages =
{ "com.test.dbrepo.service.impl", "com.test.db.service", "com.test.dbrepo.repository", "com.cc.test.db.service" })