构建与配置
1.1.引入Spring Boot模块
用Spring Initializr——创建Spring Boot项目- 起步依赖、自动配置、端点监控
web集成了tomacat springMVC
Thymeleaf 模板引擎 前端页面模板 使用Thymeleaf3
JPA数据库规范
MySQL数据库的驱动
Aspects 集成spring的AOP的模块
DevTools
连接数据库 新建数据库格式为UTF8
日志的配置xml 文件
针对开发环境和伸展环境做个性化的配置。。
1.2异常的处理
1,定义错误的页面
404一些资源找不到或者访问的页面不存在
500 后台的Spring boot 框架发生异常的信息
@ControllerAdvice //拦截有Controller注解的控制器
@ExceptionHandler
//拦截有Controller注解的控制器
@ControllerAdvice
public class ControllerExceptionHandler {
//获取日志
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@ExceptionHandler(Exception.class)
public ModelAndView exceptionHander(HttpServletRequest request, Exception e) throws Exception {
logger.error("Requst URL : {},Exception : {}", request.getRequestURL(), e);
//当标识了状态码的时候就不拦截
if (AnnotationUtils.findAnnotation(e.getClass(), ResponseStatus.class) != null) {
throw e;
}
ModelAndView mv = new ModelAndView();
mv.addObject("url", request.getRequestURL());
mv.addObject("exception", e);
mv.setViewName("error/error");
return mv;
}
}
记录日志内容
请求URL
访问者ip
调用方法
参数
返回内容
采用AOP来处理
加入注解@Aspect切面注解
@Component组件扫描
@Pointcut控制拦截器
@Before("log()")
public void doBefore(JoinPoint joinPoint) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
String url = request.getRequestURL().toString();
String ip = request.getRemoteAddr();
String classMethod = joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
RequestLog requestLog = new RequestLog(url, ip, classMethod, args);
logger.info("Request : {}", requestLog);
}
静态页面
1静态页面导入project
静态的目录结构和project保持一致,在文件目录里Reveal in Finder打开
2thymeleaf布局
在模板下要把资源引入指定路径
<link rel="stylesheet" href="../static/css/me.css" th:href="@{/css/me.css}">
用fregment进行布局
title元素替换掉
<head th:fragment="head{title}">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title th:replace="${title}">博客详情</title>
<head th:replace="-fragment::head(~{::title})">
3错误页面美化
设计与规范
1实体类设计
博客
博客分类标签
博客标签
博客评论
用户User
2应用分层
请求处理层(Web层)
业务逻辑层(Service层)
持久层(Dao层)
3命名约定
获取单个对象的方法有哪get做前缀
获取多个对象的方法用list做前缀
获取统计值的方法用count做前缀
插入的方法用save或者用insert做前缀
删除的方法用remove做前缀
修改的方法用update做前缀
4实体类的构建
加入注解@entity与数据库建立联系
@table
后台管理
一、登录
1.构建登录页面和后台管理页面
2.UserService和UserRepository
3.LoginController实现登录
4.MDS加密
5.登录拦截器LoginInterceptor
登录到首页参考Semantic Ui的layout
二、分类管理
1.分类管理页面
2.分类列表分页
3.分类新增、修改、删除