个人博客创建

构建与配置

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.分类新增、修改、删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值