SpringBoot超详细笔记(整合SSM附源码)

您所在的位置:网站首页 springboot和vue前后端分离源码 SpringBoot超详细笔记(整合SSM附源码)

SpringBoot超详细笔记(整合SSM附源码)

2024-06-25 10:05| 来源: 网络整理| 查看: 265

SpringBoot超详细笔记(整合SSM附源码)

引言:

       本文主要分享了有关SpringBoot相关的知识,包括:SpringBoot的简介、SpringBoot环境的搭建、简单是SpringBoot案例、lombok的简单应用、在SpringBoot中加入HTML页面时的操作、SpringBoot的目录解析、SpringBoot整合SSM_html+vue+jquery(附源码)、thymeleaf模板的简述及使用、SpringBoot整合SSM_thymeleaf(附源码);

文章目录 SpringBoot超详细笔记(整合SSM附源码)1. SpringBoot简介2. SpringBoot环境的搭建2.1 首先创建Maven项目2.2 GVA坐标2.3 在Maven项目中加入SpringBoot2.4 选择构建项目的类型_aliyun2.5 项目描述2.6 指定SpringBoot版本和需要的依赖本项目选择2.1.14版本,加入了Lombok、Spring Web、Thymeleaf依赖 2.7 编写Controller2.8 项目运行2.8.1 运行启动类的main方法2.8.2 maven命令 2.9 结果界面 3. lombok应用_慎用3.1 lombok简介3.2 添加IDEA对lombok的支持在setting中搜索lombok,安装 3.3 部分注解的使用 4. 加入HTML页面4.1 编写index.html4.2 编写success页面4.3 编写初始化页面4.4 编写UserInfo4.5 编写UserInfoController4.6 结果界面 5. SpringBoot的目录结构6. xml与html的区别联系7. SpringBoot整合SSM_html+vue+jquery7.1 创建数据库7.2 编写实体类7.3 编写StudentMapper.java7.4 编写StudentMapper.xml7.5 修改SpringbootSsmApplication7.6 编写StudentService7.7 编写StudentServiceImpl7.8 编写ViewController7.9 编写StudentController7.10 编写showAllStudent7.11 编写addStudent7.12 结果展示 8. thymeleaf8.1 thymeleaf简介8.2 thymeleaf应用8.2.1 需加入依赖8.2.2 增加头文件8.2.3 动态替换掉静态数据 9. SpringBoot整合SSM_thymeleaf9.1 创建数据库9.2 编写实体类9.3 编写StudentMapper.java9.4 编写StudentMapper.xml9.5 修改SpringbootSsmApplication9.6 编写StudentService9.7 编写StudentServiceImpl9.8 编写StudentController9.9 编写showAllStudent9.10 编写addStudent9.11 编写updateStudent9.12 结果展示

1. SpringBoot简介

       SpringBoot设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置;SpringBoot不是一门新技术,只是将Spring、SpringMVC等封装起来,就是一个工具集;

SpringBoot特点:

不需要模板化的配置整合三方框架时,只需要导入相应的starter依赖包,会自动整合默认只有一个.properties是我配置文件部署工程时采用的是jar包的方式,内部自动依赖Tomcat容器,提供了多环境的配置SpringCloud需要建立在SpringBoot的基础上 2. SpringBoot环境的搭建 2.1 首先创建Maven项目

创建Maven项目

2.2 GVA坐标

GAV坐标

GAV坐标

2.3 在Maven项目中加入SpringBoot

加入springboot

2.4 选择构建项目的类型_aliyun

填入aliyun网址

2.5 项目描述

编写目录

2.6 指定SpringBoot版本和需要的依赖 本项目选择2.1.14版本,加入了Lombok、Spring Web、Thymeleaf依赖

添加依赖

2.7 编写Controller

编写代码

2.8 项目运行 2.8.1 运行启动类的main方法

在这里插入图片描述

运行成功

2.8.2 maven命令 mvn spring-boot:run 2.9 结果界面

运行成功

3. lombok应用_慎用 3.1 lombok简介

          lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些Java类中的大量样板代码,lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法;

3.2 添加IDEA对lombok的支持 在setting中搜索lombok,安装

在这里插入图片描述

3.3 部分注解的使用 @Setter:生成Setting方法@Getter:生成Getter方法@NoArgsConstructor:生成无参构造@AllArgsConstructor:生成有参构造@Data :代替@Setter、@Getter、toString 4. 加入HTML页面 4.1 编写index.html

resources/templates下

HTML页面 SpringBoot Html View UserName: Password: Tel: 4.2 编写success页面 成功界面 数据交互成功 4.3 编写初始化页面

当访问localhost:8080时显示该页面

package com.sx.kak.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Created by Kak on 2020/8/31. */ @Controller public class PageController { @RequestMapping("/") public String showIndex(){ return "index"; } } 4.4 编写UserInfo package com.sx.kak.vo; import lombok.*; /** * Created by Kak on 2020/8/31. */ @NoArgsConstructor //生成无参构造 @AllArgsConstructor //生成有参构造 @Data //代替@Setter、@Getter、toString public class UserInfo { private String username; private String password; private String tel; } 4.5 编写UserInfoController package com.sx.kak.controller; import com.sx.kak.vo.UserInfo; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; /** * Created by Kak on 2020/8/31. */ @Controller public class UserInfoController { //接收表单数据 @RequestMapping(value="add",method=RequestMethod.POST) public String getUserInfo(UserInfo userInfo){ System.out.println(userInfo); return "success"; } //全查 @RequestMapping("/userInfo") @ResponseBody public ResponseEntity findUser(){ ArrayList list = new ArrayList(); list.add(new UserInfo("kaka1","123456","123456")); list.add(new UserInfo("kaka2","123456","123456")); list.add(new UserInfo("kaka3","123456","123456")); return new ResponseEntity(list, HttpStatus.OK); } } 4.6 结果界面

表单数据

成功传入后台

5. SpringBoot的目录结构

目录结构

6. xml与html的区别联系

xml与html区别与联系:

联系:二者均可以使用浏览器解析,都在内存中形成dom模型区别: xml:只能有一个root(根)节点xml:自定义标记;而html预定义标记xml:区分大小写,html不区分xml:中标记的属性值必须使用引号,而html可以不用xml:标记必须关闭;而html可以不关闭xml:不可以交叉嵌套 7. SpringBoot整合SSM_html+vue+jquery

在这里插入图片描述

7.1 创建数据库 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50) NOT NULL, sex VARCHAR(10) DEFAULT 'man', age VARCHAR(5) ) CHARSET = utf8; 7.2 编写实体类

在po包下编写实体类

package com.sx.kak.po; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * Created by Kak on 2020/8/31. */ @Data @AllArgsConstructor @NoArgsConstructor public class Student { private int id; private String name; private String sex; private String age; } 7.3 编写StudentMapper.java

在mapper中编写StudentMapper

package com.sx.kak.mapper; import com.sx.kak.po.Student; import java.util.List; /** * Created by Kak on 2020/8/31. */ public interface StudentMapper { public List findAll(); public Student findOneById(int id); public void addStudent(Student student); public void updateStudent(Student student); public void deleteStudent(int id); } 7.4 编写StudentMapper.xml

在resources/mapping下编写

select id,name,sex,age from student SELECT id,name,sex,age FROM student WHERE id=#{id} insert into student (id,name,sex,age) VALUES (#{id},#{name},#{sex},#{age}) UPDATE student set name=#{name},sex=#{sex},age=#{age} WHERE id=#{id} DELETE FROM student where id=#{id} 7.5 修改SpringbootSsmApplication

设置mapper扫描基础包路径

package com.sx.kak; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication //设置mapper扫描基础包路径 @MapperScan(basePackages = {"com.sx.kak.mapper"}) public class SpringbootSsmApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSsmApplication.class, args); } } 7.6 编写StudentService

在service下

package com.sx.kak.server; import com.sx.kak.po.Student; import java.util.List; /** * Created by Kak on 2020/8/31. */ public interface StudentService { public List findAllService(); public Student findOneStudentService(int id); public void addStudentService(Student student); public void updateStudentService(Student student); public void deleteStudentService(int id); } 7.7 编写StudentServiceImpl

在service/impl下

package com.sx.kak.server.impl; import com.sx.kak.mapper.StudentMapper; import com.sx.kak.po.Student; import com.sx.kak.server.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * Created by Kak on 2020/8/31. */ @Service//标注service实现对象有spring接管 public class StudentServiceImpl implements StudentService{ //注入mapper接口 @Autowired(required = false) private StudentMapper studentMapper; @Override public List findAllService() { List all = studentMapper.findAll(); return all; } @Override public Student findOneStudentService(int id) { Student oneById = studentMapper.findOneById(id); return oneById; } @Override public void addStudentService(Student student) { studentMapper.addStudent(student); } @Override public void updateStudentService(Student student) { studentMapper.updateStudent(student); } @Override public void deleteStudentService(int id) { studentMapper.deleteStudent(id); } } 7.8 编写ViewController

用于视图跳转

package com.sx.kak.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Created by Kak on 2020/8/31. */ @Controller public class ViewController { @RequestMapping("/studentView") public String showList(){ return "showAllStudent"; } @RequestMapping("/addStudent") public String addStudent(){ return "addStudent"; } } 7.9 编写StudentController

业务控制层

package com.sx.kak.controller; import com.sx.kak.po.Student; import com.sx.kak.server.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.util.List; /** * Created by Kak on 2020/8/31. */ @Controller public class StudentController { //注入service接口 @Autowired(required = false) private StudentService studentService; //全查 @RequestMapping(value = "/students",method = RequestMethod.GET) @ResponseBody public ResponseEntity findAllStu(){ List allService = studentService.findAllService(); if(allService!=null){ return new ResponseEntity(allService, HttpStatus.OK); }else { return new ResponseEntity(allService, HttpStatus.NOT_FOUND); } } //增加 @RequestMapping(value = "addStudents",method = RequestMethod.POST) public String addStu(Student student){ studentService.addStudentService(student); return "redirect:studentView"; } //单查 @RequestMapping(value = "findByIdStudents",method = RequestMethod.GET) @ResponseBody public ResponseEntity findByIdStu(@RequestParam("id") int id){ Student oneStudentService = studentService.findOneStudentService(id); if(oneStudentService!=null){ return new ResponseEntity(oneStudentService, HttpStatus.OK); }else{ return new ResponseEntity( HttpStatus.NOT_FOUND); } } //修改 @RequestMapping(value = "/updateStudents",method = RequestMethod.POST) @ResponseBody public ResponseEntity updateStu(@RequestBody Student student){ System.out.println(student); studentService.updateStudentService(student); return new ResponseEntity(HttpStatus.OK); } //删除 @RequestMapping(value = "deleteStudents",method = RequestMethod.GET) @ResponseBody public ResponseEntity deleteStu(@RequestParam("id") int id){ studentService.deleteStudentService(id); return new ResponseEntity(HttpStatus.OK); } } 7.10 编写showAllStudent 学生全查页面 ID NAME SEX AGE Action {{s.id}} {{s.name}} {{s.age}} {{s.sex}} 修改 删除 增加 X 学生信息修改: 学生编号:;;; 学生姓名:;;; 学生性别:;;; 学生年龄:;;; 取消 修改 var updates = new Vue({ el:'#table2' , data:{ s:"", }, }); var myObj = new Vue({ el: '#findAll', data: { students: [] }, methods: { findOneById: function (id) { alert(id); $.ajax({ type: "get", url: "/findByIdStudents?id=" + id, dataType: "json", success: function (data) { console.log(data); updates.s = data; } }); $("#modalModify").modal("show"); }, delectStudent:function(id) { $.ajax({ type: "get", url: "/deleteStudents?id=" + id, // dataType: 'json', success: function (data) { showStudent(); } }); } } }); $("#updateStu").click(function () { alert("发送请求"+JSON.stringify(updates.s)); $.ajax({ url:"/updateStudents", type:"post", data: JSON.stringify(updates.s), contentType:'application/json', // dataType:"json", success:function (data) { alert("修改成功!"); $("#modalModify").modal("hide");//关闭窗体 showStudent(); } }); }); $(function(){ showStudent(); }); function showStudent() { $.ajax({ url: 'students', type: 'GET', dataType: 'json', success: function (data) { myObj.students = data; } }) } 7.11 编写addStudent 增加页面 ID: NAME: SEX: AGE: 7.12 结果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8. thymeleaf 8.1 thymeleaf简介

         Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎,可以处理HTML、XML、JavaScript、CSS等;目的是提供优雅且高度可维护的模板创建方式,提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器等功能;

8.2 thymeleaf应用 8.2.1 需加入依赖 org.springframework.boot spring-boot-starter-thymeleaf 8.2.2 增加头文件 8.2.3 动态替换掉静态数据

可以用th标签动态替换掉静态数据

修改 删除 {{s.id}} {{s.name}} {{s.age}} {{s.sex}} 修改 删除 9. SpringBoot整合SSM_thymeleaf

在这里插入图片描述

9.1 创建数据库 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50) NOT NULL, sex VARCHAR(10) DEFAULT 'man', age VARCHAR(5) ) CHARSET = utf8; 9.2 编写实体类

在po包下编写实体类

package com.sx.kak.po; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * Created by Kak on 2020/8/31. */ @Data @AllArgsConstructor @NoArgsConstructor public class Student { private int id; private String name; private String sex; private String age; } 9.3 编写StudentMapper.java

在mapper中编写StudentMapper

package com.sx.kak.mapper; import com.sx.kak.po.Student; import java.util.List; /** * Created by Kak on 2020/8/31. */ public interface StudentMapper { public List findAll(); public Student findOneById(int id); public void addStudent(Student student); public void updateStudent(Student student); public void deleteStudent(int id); } 9.4 编写StudentMapper.xml

在resources/mapping下编写

select id,name,sex,age from student SELECT id,name,sex,age FROM student WHERE id=#{id} insert into student (id,name,sex,age) VALUES (#{id},#{name},#{sex},#{age}) UPDATE student set name=#{name},sex=#{sex},age=#{age} WHERE id=#{id} DELETE FROM student where id=#{id} 9.5 修改SpringbootSsmApplication

设置mapper扫描基础包路径

package com.sx.kak; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication //设置mapper扫描基础包路径 @MapperScan(basePackages = {"com.sx.kak.mapper"}) public class SpringbootSsmApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSsmApplication.class, args); } } 9.6 编写StudentService

在service下

package com.sx.kak.server; import com.sx.kak.po.Student; import java.util.List; /** * Created by Kak on 2020/8/31. */ public interface StudentService { public List findAllService(); public Student findOneStudentService(int id); public void addStudentService(Student student); public void updateStudentService(Student student); public void deleteStudentService(int id); } 9.7 编写StudentServiceImpl

在service/impl下

package com.sx.kak.server.impl; import com.sx.kak.mapper.StudentMapper; import com.sx.kak.po.Student; import com.sx.kak.server.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * Created by Kak on 2020/8/31. */ @Service//标注service实现对象有spring接管 public class StudentServiceImpl implements StudentService{ //注入mapper接口 @Autowired(required = false) private StudentMapper studentMapper; @Override public List findAllService() { List all = studentMapper.findAll(); return all; } @Override public Student findOneStudentService(int id) { Student oneById = studentMapper.findOneById(id); return oneById; } @Override public void addStudentService(Student student) { studentMapper.addStudent(student); } @Override public void updateStudentService(Student student) { studentMapper.updateStudent(student); } @Override public void deleteStudentService(int id) { studentMapper.deleteStudent(id); } } 9.8 编写StudentController

业务控制层

package com.sx.kak.controller; import com.sx.kak.po.Student; import com.sx.kak.server.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.List; /** * Created by Kak on 2020/8/31. */ @Controller public class StudentController { //注入service接口 @Autowired(required = false) private StudentService studentService; @RequestMapping("/addStudentView") public String addStudent(){ return "addStudent"; } //全查 @RequestMapping(value = "/students",method = RequestMethod.GET) public String findAllStu(Model model){ List allService = studentService.findAllService(); model.addAttribute("students",allService); return "showAllStudent"; } //增加 @RequestMapping(value = "addStudents",method = RequestMethod.POST) public String addStu(Model model,Student student){ studentService.addStudentService(student); return "redirect:students"; } //单查 @RequestMapping(value = "findByIdStudents",method = RequestMethod.GET) public String findByIdStu(Model model,int id){ Student oneStudentService = studentService.findOneStudentService(id); model.addAttribute("student",oneStudentService); return "updateStudent"; } //修改 @RequestMapping(value = "/updateStudents",method = RequestMethod.POST) public String updateStu(Model model,Student student){ studentService.updateStudentService(student); return "redirect:students"; } //删除 @RequestMapping(value = "deleteStudents",method = RequestMethod.GET) public String deleteStu(Model model, int id){ studentService.deleteStudentService(id); return "redirect:students"; } } 9.9 编写showAllStudent 学生全查页面 ID NAME SEX AGE Action 修改 删除 增加 9.10 编写addStudent 增加页面 ID: NAME: SEX: AGE: 9.11 编写updateStudent 修改页面 ID: NAME: SEX: AGE: 9.12 结果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3