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代码审计!!!