本来是做大数据的,主要走的是Python路线,但是被留在信息部门工作牵扯一些软开工作,所以学习Java软件开发,同事的态度十分嚣张看不起人,处处直言“也不看看我简历比你长两页”,遂自发学习,过程中也经历了一些困难,于此记录一下,同时也算是帮助有心上进的“同是天涯沦落人”共同进步!
我的实践主要来自大佬的教程,原文在这里,http://t.csdnimg.cn/NmUZ2,大佬的表达已经很简单明了,我这里主要是记录一下自己的学习,同时也尽可能的用通俗到非程序员也能看懂的行文来分享给正在学习框架的朋友们,希望都能尽快的掌握这个!有些实在细碎、绕不开的点,等这篇完结了,单独再开一篇记录吧,
一、创建基础项目
(1)、pom文件
从IDEA创建或者从网站创建都可以,重点在于是否生成pom.xml文件。如果没有生成的话,建议从网站生成→start.springboot.to,当然也可以自己添加。
这个文件的重点作用是里边提供了很多所谓的“依赖”,提供的功能是完全类似于单个文件的import部分的,可以通俗的理解一下就是,import导入的包,好比小麦,可以磨制面粉,可以留作麦种,可以做酒精,可以作饲料等等,功能较为基础但适用范围很大。而pom.xml里边所谓的依赖,类似于已经加工成型可以直接使用的饺子皮、馄饨皮,只适合用于包饺子,不再适合酿酒、作饲料等等。
(2)、注解爆红
在后续的编码过程中,如果出现注解飘红的情况,大概率原因是因为这个文件里边缺少了相应的依赖,解决办法有很多,最高效、准确的应该是,从网上搜索飘红报错的内容,是缺少哪个依赖,然后将提供的依赖复制粘贴进pom.xml文件,此时复制进去的内容会飘红,点击右侧的Maven管理器刷新即可。
二、分层搭建
项目整体的分层如下,
(1)、创建实体类
所谓的实体类,指的是,开发的软件主要服务的对象,举个例子,开发的是餐饮行业的系统,那么实体类可能需要菜品(variety of dishes)、员工等等实体类,然后又包括不同的属性等等。
这里的例子是学生信息管理系统。那么我们有两个实体类,一个是学生本身这个类,另外一个是登录这个系统的用户,考虑到实际的场景中,学生信息管理系统,那么辅导员肯定是要有账号登录的,但是可能一部分学生(如班长等)也会有登录的需要。所以有
package cn.edu.ldu.springbootweb.entity;
import lombok.Data;
import java.math.BigInteger;
@Data
public class User {
private BigInteger userId;
private String userName;
private String pass;
}
这里的对象指的是“登录学生信息管理系统的人”,有些学生可能一次也不用登录这个系统,但他仍然作为一个Student,所以再有Student实体类如下:
package cn.edu.ldu.springbootweb.entity;
import lombok.Data;
import org.springframework.stereotype.Component;
import java.math.BigInteger;
@Data
@Component
public class Student {
private String check;
private BigInteger id;
private String username;
private String password;
private String course;
private User user;
}
到这里有些问题,提一下记录一下,
1、为什么两个实体类不需要get、和set函数?
因为两个实体类里边都使用了@Data注解,这个注解来自于Lombok库,作用即是通过使用注解自动化模板代码的生成,除了get和set函数等还包括equals、hashCode等。所以看似缺少相应的构造函数,实际由@Data已经给出。
2、为什么Student实体类多了一个@Component注解?
这个会牵扯到后边的代码,这里在登陆系统时的账号密码是固定唯一的,不牵扯到与数据库的交互,所以User不需要@Com[onent注解,而Student类表示学生的信息,包括之后的增删改查等等功能牵扯到与数据库交互,所以需要添加@Component注解。先上代码看一下
@RequestMapping("/toLoginPage")
public String login(ModelAndView modelAndView, @Valid Student student, BindingResult bindingResult,Model model){