Java 我创建的Bean中的项目Spring启动问题
嗨,我的简单Spring Boot安全项目 我的用户控制器Java 我创建的Bean中的项目Spring启动问题,java,spring,spring-boot,Java,Spring,Spring Boot,嗨,我的简单Spring Boot安全项目 我的用户控制器 @RestController @RequestMapping(path= "/api") @RequiredArgcContructor public class UserController { private final UserService userService; @PostMapping public String create(@RequestBody UserD
@RestController
@RequestMapping(path= "/api")
@RequiredArgcContructor
public class UserController {
private final UserService userService;
@PostMapping
public String create(@RequestBody UserDTO userDto){
return userService.save(userDto);
}
}
我的用户服务
@Service
@RequiredArgsConstructor
public class UserService {
private UserManager userManager;
private Mapper<UserDTO, UserEntity> userDTOUserMapper;
public String save(UserDTO userDto) {
return userManager.signUp(userDTOUserMapper.map(userDto));
}
}
我的映射配置
@Configuration
public class ApiMappingConfig {
//userDTO mapping user
@Bean
public Mapper<UserDTO, UserEntity> userDTOUserMapper(){
return Mapping.from(UserDTO.class)
.to(UserEntity.class)
.omitInDestination(UserEntity::getLocked)
.omitInDestination(UserEntity::getUser_id)
.omitInDestination(UserEntity::getEnabled)
.mapper();
}
}
我的主课
@SpringBootApplication
public class UserlogintaskApplication {
public static void main(String[] args) {
SpringApplication.run(UserlogintaskApplication.class, args);
}
}
我的错误
创建文件中定义了名为“userController”的bean时出错
[C:\Users\user\Desktop\Java\userlogintask\target\classes\com\userlogintask\userlogintask\controller\UserController.class]:
通过构造函数参数0表示的未满足依赖关系;
嵌套异常是
org.springframework.beans.factory.unsatifiedDependencyException:
创建文件中定义了名为“userService”的bean时出错
[C:\Users\user\Desktop\Java\userlogintask\target\classes\com\userlogintask\userlogintask\service\UserService.class]:
通过构造函数参数1表示的未满足依赖关系;
嵌套异常是
org.springframework.beans.factory.BeanCreationException:错误
创建在类路径中定义了名为“userDTOUserMapper”的bean
资源
[com/userlogintask/userlogintask/mapping/ApiMappingConfig.class]:Bean
工厂方法实例化失败;嵌套异常是
org.springframework.beans.BeanInstantiationException:未能
实例化[com.remondis.remap.Mapper]:工厂方法
“userDTOUserMapper”引发异常;嵌套异常是
com.remondis.remap.MappingException:属性的get方法
com.userlogintask.userlogintask.model.UserEntity类型中的“enabled”为
不是有效的JavaBean属性。在
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1354)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:944)
~[spring-beans-5.3.5.jar:5.3.5]at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
~[spring-context-5.3.5.jar:5.3.5]at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
~[spring-context-5.3.5.jar:5.3.5]at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
~[spring-boot-2.4.4.jar:2.4.4]at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:769)
~[spring-boot-2.4.4.jar:2.4.4]at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
~[spring-boot-2.4.4.jar:2.4.4]at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)
~[spring-boot-2.4.4.jar:2.4.4]at
org.springframework.boot.SpringApplication.run(SpringApplication.java:326)
~[spring-boot-2.4.4.jar:2.4.4]at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1313)
~[spring-boot-2.4.4.jar:2.4.4]at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
~[spring-boot-2.4.4.jar:2.4.4]at
userlogintask.userlogintask.UserlogintaskApplication.main(UserlogintaskApplication.java:14)
~[classes/:na]at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机
方法)~[na:na]at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
~[na:na]at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:na]at
java.base/java.lang.reflect.Method.invoke(Method.java:564)~[na:na]
在
org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
~[spring-boot-devtools-2.4.4.jar:2.4.4]由以下原因引起:
org.springframework.beans.factory.unsatifiedDependencyException:
创建文件中定义了名为“userService”的bean时出错
[C:\Users\user\Desktop\Java\userlogintask\target\classes\com\userlogintask\userlogintask\service\UserService.class]:
通过构造函数参数1表示的未满足依赖关系;
嵌套异常是
org.springframework.beans.factory.BeanCreationException:错误
创建在类路径中定义了名为“userDTOUserMapper”的bean
资源
[com/userlogintask/userlogintask/mapping/ApiMappingConfig.class]:Bean
工厂方法实例化失败;嵌套异常是
org.springframework.beans.BeanInstantiationException:未能
实例化[com.remondis.remap.Mapper]:工厂方法
“userDTOUserMapper”引发异常;嵌套异常是
com.remondis.remap.MappingException:属性的get方法
com.userlogintask.userlogintask.model.UserEntity类型中的“enabled”为
不是有效的JavaBean属性。在
org.springframework.beans.factory.s
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class UserEntity implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id",unique = true)
private Long user_id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
private String email;
private String password;
@Enumerated(EnumType.STRING)
private UserRole userRole;
private Boolean locked = false;
private Boolean enabled = false;
public UserEntity(String firstName,
String lastName, String email,
String password, UserRole userRole) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.userRole = userRole;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Collections.singleton(new SimpleGrantedAuthority(userRole.name()));
}
@Override
public String getPassword() {
return password;
}
@Override
public String getUsername() {
return email;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return !locked;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return enabled;
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserDTO {
private String firstName;
private String lastName;
private String email;
private String password;
private UserRole userRole;
}
@SpringBootApplication
public class UserlogintaskApplication {
public static void main(String[] args) {
SpringApplication.run(UserlogintaskApplication.class, args);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.userlogintask</groupId>
<artifactId>userlogintask</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>userlogintask</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>15</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.20</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.remondis</groupId>
<artifactId>remap</artifactId>
<version>4.2.5</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.3.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.4</version>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
.MappingException: The get-method for property 'enabled' in type com.userlogintask.userlogintask.model.UserEntity is not a valid Java Bean property. at