我是Spring Boot和MapStruct工具的新手。
早些时候,一个由其他团队使用这些技术编写的项目尚未启动。然后,我在Mapper抽象类中进行了一些更改,但是现在mapper对象在应用程序启动时变为null。
映射器抽象类:
@Mapper(componentModel = "spring") public abstract class UserAndEmployeeMapper { public UserAndEmployeeMapper INSTANCE = Mappers.getMapper( UserAndEmployeeMapper.class ); @Mapping(source = "username", target = "name") @Mapping(source = "ssn", target = "ssn", defaultValue = "xxxxxx" ) @Mapping(target = "salary", constant = "34.67") @Mapping(target = "dob", dateFormat = "dd/MM/yyyy", constant = "10/12/2002") public abstract Employee mapToEmployee(User user); public abstract List<Employee> mapToEmployee(List<User> users); @Mapping(source = "name", target = "username") public abstract User mapToUser(Employee employee); public abstract List<User> mapToUser(List<Employee> employees); }
LoginServiceImpl类
@Service("loginService") public class LoginServiceImpl implements LoginService{ private static final AtomicLong counter = new AtomicLong(); @Autowired private EmployeeDao employeeDao; private UserAndEmployeeMapper userAndEmployeeMapper; ... }
pom.xml
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.plugin.version}</version> <configuration> <source>1.8</source> <target>1.8</target> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${mapstruct.jdk8.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin> </build>
在LoginServiceImpl中添加@Autowired之后,应用程序无法启动,并显示以下错误日志
*************************** APPLICATION FAILED TO START *************************** Description: Field userAndEmployeeMapper in org.service.impl.LoginServiceImpl required a bean of type 'org.mapper.UserAndEmployeeMapper' that could not be found. Action: Consider defining a bean of type 'org.mapper.UserAndEmployeeMapper' in your configuration.
有什么建议么 ?
使抽象类作为接口对我有用。
public interface UserAndEmployeeMapper {