Java 在spring启动应用程序中获取类未找到异常错误

Java 在spring启动应用程序中获取类未找到异常错误,java,spring,hibernate,spring-boot,spring-security,Java,Spring,Hibernate,Spring Boot,Spring Security,Authority.java package com.easkart.domain.security; import org.springframework.security.core.GrantedAuthority; public class Authority implements GrantedAuthority { /** * */ private static final long serialVersionUID = 5888173406859788817L; priv

Authority.java

package com.easkart.domain.security;

import org.springframework.security.core.GrantedAuthority;

public class Authority implements GrantedAuthority {

/**
 * 
 */
private static final long serialVersionUID = 5888173406859788817L;
private final String authority;

public Authority(String authority) {
    this.authority = authority;
}

@Override
public String getAuthority() {
    return authority;
}

}
Role.java

package com.easkart.domain.security;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Role {

@Id
private int roleId;
private String name;
@OneToMany(mappedBy = "role", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<UserRole> userRoles = new HashSet<>();

public int getRoleId() {
    return roleId;
}

public void setRoleId(int roleId) {
    this.roleId = roleId;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Set<UserRole> getUserRoles() {
    return userRoles;
}

public void setUserRoles(Set<UserRole> userRoles) {
    this.userRoles = userRoles;
}

}
User.java

package com.easkart.domain;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import com.easkart.domain.security.Authority;
import com.easkart.domain.security.UserRole;
import com.fasterxml.jackson.annotation.JsonIgnore;

@Entity
public class User implements UserDetails {
/**
 * 
 */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, updatable = false)
private long userId;
private String fullName;

@Column(name = "email", nullable = false, updatable = false)
private String email;

@Column(name = "phone", nullable = false, updatable = false)
private String phone;
private boolean enabled = true;

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonIgnore
private Set<UserRole> userRoles = new HashSet<>();

public long getUserId() {
    return userId;
}

public void setUserId(long userId) {
    this.userId = userId;
}

public String getFullName() {
    return fullName;
}

public void setFullName(String fullName) {
    this.fullName = fullName;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getPhone() {
    return phone;
}

public void setPhone(String phone) {
    this.phone = phone;
}

public void setEnabled(boolean enabled) {
    this.enabled = enabled;
}

public Set<UserRole> getUserRoles() {
    return userRoles;
}

public void setUserRoles(Set<UserRole> userRoles) {
    this.userRoles = userRoles;
}

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
    Set<GrantedAuthority> grantedAuhority = new HashSet<>();
    for (UserRole userRole : userRoles) {
        grantedAuhority.add(new Authority(userRole.getRole().getName()));
    }
    return grantedAuhority;
}

@Override
public String getPassword() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public String getUsername() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public boolean isAccountNonExpired() {
    // TODO Auto-generated method stub
    return true;
}

@Override
public boolean isAccountNonLocked() {
    // TODO Auto-generated method stub
    return true;
}

@Override
public boolean isCredentialsNonExpired() {
    // TODO Auto-generated method stub
    return true;
}


@Override
public boolean isEnabled() {
    // TODO Auto-generated method stub
    return enabled;
}

}
package com.easkart.domain;
导入java.util.Collection;
导入java.util.HashSet;
导入java.util.Set;
导入javax.persistence.CascadeType;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.FetchType;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.OneToMany;
导入org.springframework.security.core.GrantedAuthority;
导入org.springframework.security.core.userdetails.userdetails;
导入com.easkart.domain.security.Authority;
导入com.easkart.domain.security.UserRole;
导入com.fasterxml.jackson.annotation.JsonIgnore;
@实体
公共类用户实现UserDetails{
/**
* 
*/
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“id”,nullable=false,updateable=false)
私有长用户ID;
私有字符串全名;
@列(name=“email”,nullable=false,updateable=false)
私人字符串电子邮件;
@列(name=“phone”,nullable=false,updateable=false)
私人电话;
私有布尔启用=真;
@OneToMany(mappedBy=“user”,cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@杰索尼奥雷
private Set userRoles=new HashSet();
公共长getUserId(){
返回用户标识;
}
public void setUserId(长userId){
this.userId=userId;
}
公共字符串getFullName(){
返回全名;
}
public void setFullName(字符串fullName){
this.fullName=fullName;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共字符串getPhone(){
回电话;
}
公用无效设置电话(字符串电话){
this.phone=电话;
}
已启用公共void集(已启用布尔值){
this.enabled=已启用;
}
公共集合getUserRoles(){
返回用户角色;
}
public void setUserRoles(Set userRoles){
this.userRoles=userRoles;
}
@凌驾

public Collection将Main移到根包中。这样,您的结构看起来像下面这样

src/main/java
    -> EaskantApplication (which I guess is the Main class)
        -> All other packages

通常,当主类不在根目录下时,它往往无法找到所需的资源。

将easkartaplication.java移到新包中
e、 g.com.easkart.app

感谢Alain的回复。现在我得到以下警告**警告**:由于默认包的@ComponentScan,您的应用程序上下文不太可能启动。当我从用户类中删除安全包和属于安全包的类的引用时,它可以正常工作。欢迎您!我很高兴您能够修复您的问题问题!谢谢kossak,现在可以用了。我真的很感谢你的帮助。
src/main/java
    -> EaskantApplication (which I guess is the Main class)
        -> All other packages