说明:SpringBoot一天速成不是口号,而在于您的基础。
1.此演示目的就是为了让大家速成。口号:“快快快狠”。
2.具备半年以上"SSM框架+Maven"实战经验的开发人员
3.跟着此系列博文《SpringBoot一天速成》练习一遍
4.这套演练包括工程的:持久层、服务层、web层,采用Intellej idea工具。
5.所有源码和资料免费提供给读者,需要的留言。
6.笔者将实践过程中遇到的问题与大家分享,让大家少走弯路。(请阅读注释部分)
SpringBoot是干嘛的?“简化开发,独立运行”,瞄准的目标:微服务。下面是官方原话:
Spring Boot makes it easy to create stand-alone, production-grade Spring based
Applications that you can "just run".
We take an opinionated view of the Spring platform and third-party libraries
so you can get started with minimum fuss. Most Spring Boot applications need very
little Spring configuration.
*====>>> 接着第1集,此演练开始编写Web层内容:Controller和视图模板thymeleaf(替代jsp)*……
声明:@author:拈花为何不一笑,“这是一套演练对于细节方面,需要读者自己完善。”
Web层完成后的效果图(包涵笔者拙劣的.css)
要完成以上功能,需要编写以下代码
pom.xml引入springmvc和thymeleaf(当然也可以在创建工程时使用Spring Initailizr初始化这两模块)
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
打开maven依赖,查看下spring-boot-starter-web依赖了哪些jar,如图:
入口类
===>>> Springboot4Application.java
package org.it.springboot4;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* SpingBoot(Spring、SpringMVC) + Mybatis 演练
* 入口类,启动内置Tomcat服务器,初始化等。
* 配置好文件后,启动服务器报ERROR:
* Warning:java: 无法找到类型 'org.junit.jupiter.api.extension.ExtendWith' 的注释方法 'value()':
* 找不到org.junit.jupiter.api.extension.ExtendWith的类文件
* 解决方案: 右键-->pom.xml-->Maven-->Reimport即可解决此问题
*/
@MapperScan("org.it.springboot4.mapper")//扫描包(Mybatis对应的mapper包)
@SpringBootApplication
public class Springboot4Application {
public static void main(String[] args) {
SpringApplication.run(Springboot4Application.class, args);
}
}
2.1 templates中放thymeleaf模板文件(.html文件),这个模板的数据通常来源于Controller
响应的数据
2.2 static目录中放.js和.css及图片之类的数据
2.3 编写SpringMVC控制器EmpController.java(位置:org.it.springboot4.controller)
源码如下:
package org.it.springboot4.controller;
import com.sun.org.apache.xpath.internal.operations.Mod;
import org.it.springboot4.entity.Emp;
import org.it.springboot4.entity.custom.EmpCustom;
import org.it.springboot4.service.EmpService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.rmi.MarshalledObject;
import java.util.List;
import java.util.Map;
/**
*演示增删改查
*/
@RestController
@RequestMapping("/emp")
public class EmpController {
private Logger empLog = LoggerFactory.getLogger(EmpController.class);
@Autowired
private EmpService empService;
//访问url: http://localhost:8080/emp/3
@GetMapping("/{id}")
public ModelAndView findEmpById(@PathVariable("id") Integer empno){
ModelAndView modelAndView = new ModelAndView();
Emp emp = empService.getEmpById(empno);
modelAndView.addObject("emp",emp);
modelAndView.setViewName("emp");//springboot中thymeleaf默认后缀.html,服务器转发至/emp.html中
return modelAndView;
}
//1.此方法getEmpByDeptnoSal对应的sql,还可以查询员工列表信息(当不含任何查询条件时),所以这里就不写员工列表方法了
//2.在templates目录下创建模板empList.html文件,具体内容参阅empList.html
@GetMapping("/empList")
public ModelAndView findEmpList(EmpCustom empCustom){
ModelAndView modelAndView = new ModelAndView();
//这里使用Map来替换javaBean(比如Emp),用法有点类似于ibtis存储过程或jdbc存储过程 Map作为既作为参数又同时存储返回的结果数据,
// 这里是一个个的Map.Entry对象,是一种键值对数据,其实返回的javaBean也是通过成员属性来存储值的,键是属性名值是值本身。.
List
2.4编写thymeleaf模板文件(empList.html, emp.html, addEmpUI.html, updateEmpUI.html),这里面包含thymeleaf大部分日常用法。
====>>>empList.html
员工信息列表
员工列表
添加员工
序列号
员工编号
员工姓名
员工岗位
入职日期
员工月薪
员工补贴
所在部门
操作
[[${emp.empno}]]
[[${emp.ename}]]
[[${emp.job}]]
[[${#dates.format(emp.hiredate,'yyyy年MM月dd日')}]]
[[${emp.sal}]]
[[${emp.comm}]]
科研部
销售部
运维部
测试部
财务部
查看详情 |
删除 |
更新
====>>>emp.html
员工详情
员工详情
[[${#dates.format(emp.hiredate,'yyyy年MM月dd日')}]]
====>>>addEmpUI.html
新增员工
添加员工
上一张addEmpUI.html中的js调试图,Intellj idea自动提示js函数,本来是取value值的,被提示一误导选择了valueof()函数。调试工具(chrome,firefox,IE都可以调试觉得还是chrome方便一点)。
====>>> updateEmpUI.html
更新员工信息
更新员工信息
===>>>大家有没有发现一个问题,就是SpringMVC的四大器件(前端控制器、映射器、处理器适配器和视图解析器),
本人一个都没有配置,全部由SpringBoot来管理了。是不是在Web层给开发人员进行了简化呢?是的!
玩Mybatis的都知道,sql日志是多么的重要,第3集笔者(拈花为何不一笑)将演示slf4j-logback日志的配置和遇到的坑,及热部署、打包等。希望能够帮助大家少走弯路……