各位亲爱的小伙伴:大家好!
《Spring Boot 开发笔记》系列文章
这套笔记和源码是我自己在学习springboot开发中实际一个字一个字敲出来的。因为这套开发笔记是逐步整理出来的,每期会介绍不同的技术开发点。所以请大家关注公众号,以便了解更多关于Spring Boot开发知识点。
《Spring Boot开发笔记》系统搭建
章节节内容
系统搭建
1、资源目录结构说明
//一般默认保存css、img、js 这三种静态资源
"classpath:/META-INF/resourcess/static"
//一般默认保存html 这类页面资源
"classpath:/META-INF/resourcess/templates"
//一般保存数据连接properties配置文件
"classpath:/META-INF/resourcess"
2、源码目录结构说明
//启动类
springbootStartApplication
//controller 代表控制层,主要是Action/Servlet等构成(Spring MVC则是通过@Controller标签使用)此层业务层与视图层打交道的中间层,负责传输VO对象和调用BO层的业务方法,负责视图层请求的数据处理后响应给视图层。
com.itcode.controller.xxx
//pojo(plian ordinary java object)
//代表简单无规则java对象.纯的传统意义的java对象,最基本的Java Bean只有属性加上属性的get和set方法;可以额转化为PO、DTO、VO;比如POJO在传输过程中就是DTO
com.itcode.pojo
//entitiy 简单的java对象。类似于pojo最基本的Java Bean只有属性加上属性的get和set方法
com.itcode.entitiy
//Dao 操作数据库类存放目录
com.itcode.Dao
3、创建文件时注意的几个问题
3.1 静态资源文件html,应该存放到templates 文件夹下面,才能被加载
3.2创建Dao,可以使用Map模拟数据库,往对象中保存对应的键值对内容。
3.3 默认访问首页时注意,在public/index.html也有首页的话,就加载不到。
4、编写类文件
4.1 实体类
package com.itcode.entitiy;
//部门-实体类
public class Department {
private String id;//部门ID,一般是uuid
private String deptname;//部门名称
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
}
package com.itcode.entitiy;
//员工-实体类
public class employee {
private String id;//员工ID,一般是uuid
private String name;//员工名称
private Integer age;//员工年龄
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
DAO类
package com.itcode.Dao;
import com.itcode.entitiy.Department;
import org.springframework.stereotype.Repository;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@Repository
public class DepartmentDao {
private static Map<Integer, Department> departmentS = null;
static {
//创建部门1对象
Department a = new Department();
a.setId("1");
a.setDeptname("部门1");
//创建部门2对象
Department b = new Department();
b.setId("2");
b.setDeptname("部门2");
departmentS = new HashMap<Integer, Department>();
departmentS.put(1, a);
departmentS.put(2, b);
}
//获取部门列表
public Collection<Department> getDepartments(){
return departmentS.values();
}
//根据部门ID获取部门
public Department getDepartmentByid(Integer id){
return departmentS.get(id);
}
}
package com.itcode.Dao;
import com.itcode.entitiy.Employee;
import org.springframework.stereotype.Repository;
import java.util.Collection;
import java.util.Map;
@Repository
public class EmployeeDao {
public static Map<Integer, Employee> employeeMap = null;
static {
Employee a = new Employee();
a.setId("1");
a.setName("程序源代码");
a.setAge(10);
Employee b = new Employee();
b.setId("2");
b.setName("itcode");
b.setAge(10);
employeeMap.put(1,a);
employeeMap.put(2,b);
}
//部门列表
public Collection<Employee> getEmployeeS(){
return employeeMap.values();
}
//根据部门ID获取部门
public Employee getEmplyees(Integer id){
return employeeMap.get(id);
}
}
首页配置时注意所有页面的静态资源都需要使用teymeleaf这个标签来进行修改,也可以说用它来接管资源文件修改。不然的话不能加载对应的资源信息
写法: th: @{}
Thymeleaf默认会开启页面缓存,提高页面并发能力。但会导致我们修改页面不会立即被展现,因此我们关闭缓存:
# 关闭Thymeleaf的缓存
spring.thymeleaf.cache=false
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
<h1 th:text="${msg}">大家好</h1>
</body>
</html>
一般系统都支持国际化的,可以进行中文和英语等语言的适配。在进行编码前必须将IDEA file inconding 设置成UTF-8,不然的话就会出现乱码;
一般创建i18n这里面创建国际化配置文件。新建一个名叫“i18n”的包,我们用来存放国际化配置,然后在这个包下,我们再创建几个properties的配置文件,用来配置语言:如图方式,我们创建3个文件,分别是无语言配置时候生效的login.properties;中文生效的login_zh_CN.properties;英文生效的login_en_US.properties;也就是以下划线的组合:文件名区域语言.properties;当我们这样命名生成文件后,IDEA也会帮我们识别这是个国际化配置包,自动转换成如下的模式
通过th:action 这个标签进行访问请求
<form class="" action="login.html" th:action="@{user/login}" method="post">
// 跳转到成功页面
@ResponseBody
@RequestMapping("/success")
public String Success(Map<String ,Object> map){
map.put("success","success");
return "success";
}