簡體   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