SpringBoot从0到0.7——第四天
SpringBoot从0到0.7——第四天
今天进行实战开发一个小项目,SpringBoot和Thymeleaf集成的小项目
因为懒得写写前端,直接找的别人的项目在它的的基础上进行配置,进行修改。gitee项目下载
项目说明:
## 项目说明
本项目使用SpringBoot开发,jdbc5.1.48
### 1.数据库信息
创建两个表,管理员表user和员工表employee
### 2.项目流程
1.springboot集成thymeleaf
1).引入依赖
org.springframework.boot
spring-boot-starter-thymeleaf
2).配置thymeleaf模板配置
spring:
thymeleaf:
cache: false # 关闭缓存
prefix: classpath:/templates/ #指定模板位置
suffix: .html #指定后缀
3).开发controller跳转到thymeleaf模板
@Controller
@RequestMapping("hello")
public class HelloController {
@RequestMapping("hello")
public String hello(){
System.out.println("hello ok");
return "index"; // templates/index.html
}
}
=================================================================
2.thymeleaf 语法使用
1).html使用thymeleaf语法 必须导入thymeleaf的头才能使用相关语法
namespace: 命名空间
2).在html中通过thymeleaf语法获取数据
================================================================
###3.案例开发流程
?
需求分析: 分析这个项目含有哪些功能模块
用户模块:
注册
登录
验证码
安全退出
真是用户
员工模块:
添加员工+上传头像
展示员工列表+展示员工头像
删除员工信息+删除员工头像
更新员工信息+更新员工头像
库表设计(概要设计): 1.分析系统有哪些表 2.分析表与表关系 3.确定表中字段(显性字段 隐性字段(业务字段))
2张表
1.用户表 user
id username realname password gender
2.员工表 employee
id name salary birthday photo
创建一个库: ems-thymeleaf
详细设计:
省略
编码(环境搭建+业务代码开发)
1.创建一个springboot项目 项目名字: ems-thymeleaf
2.修改配置文件为 application.yml pom.xml 2.5.0
3.修改端口 项目名: ems-thymeleaf
4.springboot整合thymeleaf使用
a.引入依赖
b.配置文件中指定thymeleaf相关配置
c.编写控制器测试
5.springboot整合mybatis
mysql、druid、mybatis-springboot-stater
b.配置文件中
6.导入项目页面
static 存放静态资源
templates 目录 存放模板文件
测试
上线部署
维护
发版
首先导入项目
等待加载依赖完成
创建数据库导入数据---看一下它的application.yml
看一下yapplication.yml里面还有什么需要配置的---照片保存地址
启动项目
登录,看一下后台
分析一下这个小项目:
首先看一下application.yml
#关闭thymeleaf模板缓存
spring:
thymeleaf:
cache: false
prefix: classpath:/templates/ #指定模板位置
suffix: .html #指定后缀名
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssmbuild?characterEncoding=UTF-8
username: root
password: 123456
web:
resources:
static-locations: classpath:/static/,file:${photo.file.dir} #暴露哪些资源可以通过项目名访问
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.xuda.springboot.pojo
#Mybatis配置
#日志配置
logging:
level:
root: info
com.xuda: debug
#指定文件上传的位置
photo:
file:
dir: C:\Users\15969\Desktop\站点\Spring boot\SpringBootStudy\photo
config-LoginHandlerInterceptor拦截器,防止未授权访问
package com.xuda.springboot.config;
import com.xuda.springboot.controller.UserController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
public class LoginHandlerInterceptor implements HandlerInterceptor {
private static final Logger log = LoggerFactory.getLogger(LoginHandlerInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("session+=》{}",request.getSession().getAttribute("user"));
//登录成功后,应该有用户得session
Object loginuser = request.getSession().getAttribute("user");
if (loginuser == null) {
request.setAttribute("loginmsg", "没有权限请先登录");
request.getRequestDispatcher("/login.html").forward(request, response);
return false;
} else {
return true;
}
}
}
这个项目很适合新手来分析学习,搭建简单,代码易懂
在此基础上添加修改,给它的日志保存下来,这样有利于分析日志,如何将日志保存到本地呢
先在resources目录下建立logback-spring.xml
<?xml version="1.0" encoding="utf-8"?>${CONSOLE_LOG_PATTERN} ERROR DENY ACCEPT ${FILE_LOG_PATTERN} ${logback.rootDir}/${springAppName}.log ${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-%d{yyyy-MM-dd}.%i.log.zip ${logback.fileInfoLog.maxFileSize} ${logback.fileInfoLog.maxHistory} ${logback.fileInfoLog.totalSizeCap} true ERROR ${FILE_LOG_PATTERN} ${logback.rootDir}/${springAppName}-error.log ${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-error-%d{yyyy-MM-dd}.%i.log.zip ${logback.fileErrorLog.maxFileSize} ${logback.fileErrorLog.maxHistory} ${logback.fileErrorLog.totalSizeCap} true %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %m%n ${logback.rootDir}/${springAppName}-http.log ${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-http-%d{yyyy-MM-dd}.%i.log.zip ${logback.fileHttpLog.maxFileSize} ${logback.fileHttpLog.maxHistory} ${logback.fileHttpLog.totalSizeCap} true
在application.yml添加
spring:
application:
name: log
重新运行项目即可看到,在项目目录下会出现一个log文件夹,里面包含着日志
到此,已经能简单的看懂java代码了,开始看源码,去进行java代码审计!!!