代码之家  ›  专栏  ›  技术社区  ›  Khomendra

我创建了SpringBoot项目,但该项目不起作用

  •  0
  • Khomendra  · 技术社区  · 1 年前

    我遵循了一个使用spring-boot构建项目的教程。然而,我不是专业或中级的春季靴。所以我不明白我的项目什么时候出现了问题。我试图找到解决办法,但没能成功。

    我在这里附上了我的代码:

    SmartContactManager应用程序.java

    package com.smart;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
    import org.springframework.context.annotation.ComponentScan;
    
    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }, scanBasePackages={"com.smart.*"})
    @ComponentScan("com.smart.dao.UserRepository")
    public class SmartContactManagerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SmartContactManagerApplication.class, args);
        }
    
    }
    

    用户.java

    package com.smart.entities;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import jakarta.persistence.CascadeType;
    import jakarta.persistence.Column;
    import jakarta.persistence.Entity;
    import jakarta.persistence.FetchType;
    import jakarta.persistence.GeneratedValue;
    import jakarta.persistence.GenerationType;
    import jakarta.persistence.Id;
    import jakarta.persistence.OneToMany;
    import jakarta.persistence.Table;
    import lombok.Data;
    
    //@Data
    @Entity
    @Table(name="User")
    public class User {
        
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;
        private String name;
        
        @Column(unique = true)
        private String email;
        private String password;
        private String role;
        private boolean enable;
        private String imageUrl;
        
        @Column(length = 500)
        private String about;
        
        //one user can have many contacts
        @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy="user")
        private List<Contact> contactList = new ArrayList<>();
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        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 getRole() {
            return role;
        }
    
        public void setRole(String role) {
            this.role = role;
        }
    
        public boolean isEnable() {
            return enable;
        }
    
        public void setEnable(boolean enable) {
            this.enable = enable;
        }
    
        public String getImageUrl() {
            return imageUrl;
        }
    
        public void setImageUrl(String imageUrl) {
            this.imageUrl = imageUrl;
        }
    
        public String getAbout() {
            return about;
        }
    
        public void setAbout(String about) {
            this.about = about;
        }
    
        public List<Contact> getContactList() {
            return contactList;
        }
    
        public void setContactList(List<Contact> contactList) {
            this.contactList = contactList;
        }
        
        
    
    }
    

    用户存储库.java

    package com.smart.dao;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.stereotype.Repository;
    
    import com.smart.entities.User;
    
    @Repository
    public interface UserRepository extends JpaRepository<User, Integer> {
    
    }
    

    家庭控制器.java

    package com.smart.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.smart.dao.UserRepository;
    import com.smart.entities.User;
    
    @Controller
    public class HomeController {
        
        @Autowired
        private UserRepository userRepository;
        
        @GetMapping("/test") 
        @ResponseBody
        public String test() {
            
            User user = new User();
            user.setName("Sanket Verma");
            user.setEmail("Sanket@gmail.com");
            System.out.println("Testing");
            
            userRepository.save(user);
            
            return "Working";
        }
    }
    

    应用程序属性

    spring.datasource.url=jdbc:mysql://localhost:3306/smartcontact?useSSL=false&useTimezone=true&serverTimezone=UTC
    spring.datasource.username=root
    spring.datasource.password=root@123
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
    spring.jpa.generate-ddl=true
    spring.jpa.properties.hibernate.hbm2ddl.auto=update
    
    

    联系人.java

    package com.smart.entities;
    
    import jakarta.persistence.Column;
    import jakarta.persistence.Entity;
    import jakarta.persistence.GeneratedValue;
    import jakarta.persistence.GenerationType;
    import jakarta.persistence.Id;
    import jakarta.persistence.ManyToOne;
    import jakarta.persistence.Table;
    import lombok.Data;
    
    //@Data
    @Entity
    (name = "contact")
    public class Contact {
    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int cId;
        private String fname;
        private String sname;
        private String work;
        private String email;
        private String phone;
        private String image;
        
        @Column(length = 1000)
        private String description;
        
        public int getcId() {
            return cId;
        }
    
    
    
        public void setcId(int cId) {
            this.cId = cId;
        }
    
    
    
        public String getFname() {
            return fname;
        }
    
    
    
        public void setFname(String fname) {
            this.fname = fname;
        }
    
    
    
        public String getSname() {
            return sname;
        }
    
    
    
        public void setSname(String sname) {
            this.sname = sname;
        }
    
    
    
        public String getWork() {
            return work;
        }
    
    
    
        public void setWork(String work) {
            this.work = work;
        }
    
    
    
        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 String getImage() {
            return image;
        }
    
    
    
        public void setImage(String image) {
            this.image = image;
        }
    
    
    
        public String getDescription() {
            return description;
        }
    
    
    
        public void setDescription(String description) {
            this.description = description;
        }
    
    
    
        public User getUser() {
            return user;
        }
    
    
    
        public void setUser(User user) {
            this.user = user;
        }
    
    
    
        //Many contacts can have to one user
        @ManyToOne
        private User user;
    }
    

    预期的输出应该是,当我们运行程序时,名称和电子邮件将保存在数据库中。

    0 回复  |  直到 1 年前
        1
  •  0
  •   Hoang Phan    1 年前

    你需要在HomeController上添加@RequestMapping来识别这样的资源

    @RestController
    @RequestMapping 
    public class HomeController {
    
    ...
    }