繁体   English   中英

Spring应用程序无法启动

[英]Spring Application failed to start

我是spring的iam初学者,想要做这个示例项目..我有一个数据库想要连接到它..我使用了诸如AutoWired&service之类的注释。.但是有我无法解决的问题

Controller Package中的RegisterationController有一个我想调用的服务:

 @RestController public class RigesterationController { @Autowired private DataManagment dm =new DataManagment() ; @CrossOrigin(origins = "http://localhost:8060") @GetMapping("/SignUp/{email}/{UName}/{Pass}/{gender}/{UserType}") @ResponseBody public void SignUp(@PathVariable String email , @PathVariable String UName , @PathVariable String Pass , @PathVariable char gender , @PathVariable String UserType ) { boolean valid = dm.Validate(email , Pass ) ; // validate email & Pass if (valid) { if (UserType.equals("s")) { StudentAccount studentaccount = new StudentAccount(email , Pass , UName , gender) ; dm.add(studentaccount) ; System.out.println("Account Created Successfully" ); } } else { System.out.println("Invalid Data, Please Try Again" ); } } 

一个包中的 DataManagement类:

 @Service public class DataManagment { @Autowired private StudentAccountRepository StudentAccount1 ; public boolean Validate (String email , String Pass ) { if(!email.contains("@") || email.contains(" ") || (Pass.length()<8) || !email.contains(".com") ) return false; else return true; } public void add(StudentAccount studentaccount2) { StudentAccount1.save(studentaccount2) ; } 

第一个软件包中的 StudentAccountRepository:

 package first; import org.springframework.data.repository.CrudRepository; public interface StudentAccountRepository extends CrudRepository<StudentAccount,String > { } 

第一个软件包中的学生帐户..指的是数据库中的表:

 package first; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="studentaccount") public class StudentAccount { @Id private String email; private String password; private String name ; private char gender; public StudentAccount(String email, String password , String name , char gender ) { super(); this.email = email; this.password = password; this.name = name; this.gender = gender; } public StudentAccount() { super(); this.email = ""; this.password = ""; this.name = ""; this.gender = ' '; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } } 

MainController类别

 package controller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.ComponentScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @SpringBootApplication public class MainController { public static void main(String[] args) { SpringApplication.run(MainController.class, args); } } 

现在我有这个错误:


申请开始失败


描述:

controller.RigesterationController中的字段dm需要找不到“ first.DataManagment”类型的Bean。

行动:

考虑在配置中定义类型为“ first.DataManagment”的bean。

如果在private DataManagment上使用@Autowired ,则不能使用new因为那样Spring便无法对其自动进行布线,因为它对新对象一无所知。 Spring使用@Autowired顾名思义来自动查找已经存在的东西。 此外,如果您尝试通过构造函数注入,则应像这样完成

private DataManagement dm;

@Autowired
public RigesterationController(DataManagment dm)
{
   this.dm = dm;
}  

对于现场注入,只需键入

@Autowired
private DataManagement dm;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM