技术问题小总结1

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 前言 做项目是提高技术最高效的手段,这句话从某种程度上而言真是太对了。因为不论是大项目还是小项目,不论是正式项目还是个人业务项目,只要在做,就总能遇到各种各样的问题,从而能直接着重于某个点去学习。以下便是最近做业余小项目-tzxbloghttps://github.com/tuzongxun/tzxblog时遇到的一些问题和解决办法记录。

前言

做项目是提高技术最高效的手段,这句话从某种程度上而言真是太对了。
因为不论是大项目还是小项目,不论是正式项目还是个人业务项目,只要在做,就总能遇到各种各样的问题,从而能直接着重于某个点去学习。
以下便是最近做业余小项目-tzxbloghttps://github.com/tuzongxun/tzxblog时遇到的一些问题和解决办法记录。

springboot日志的问题

问题描述

springboot默认的是logback日志框架,不做任何配置的情况下,日志输出在控制台。
我想要通过配置把日志内容输出到指定的文件中,于是做了如下的配置:


logging.level.root=warn
logging.level.com.tzx.blog=warn
logging.file=mylog.log
logging.path=C:/Users/tzx/Desktop/mylog/

我下意识的认为logging.file是日志文件名,logging.path是日志文件输出的目录。
但是实际运行时发现我想要的C:/Users/tzx/Desktop/mylog/mylog.log文件没有出现。

问题分析

经查阅springboot官方文档,发现了如下的一些内容:
logging

很显然,官方文档中并没有我这种配置。
根据上边的描述可知这里的日志有三种配置方式:

  1. logging.filelogging.path都不做任何配置,则默认日志输出到控制台
  2. 只配置logging.file,如果这里只是一个文件名,则会在当前目录下输出一个日志文件;如果是一个绝对路径下的文件名,则会在生成一个该绝对路径的文件
  3. 只配置logging.path,在配置的目录下生成一个spring.log日志文件

解决办法

根据上边分析,我选择的解决方式如下:
去掉logging.path,直接在logging.file中配置成C:/Users/tzx/Desktop/mylog/mylog.log

markdown语法解析

问题描述

由于之前写博客时,那些博客网站基本都支持markdown语法,经过使用后,发现确实很方便,于是决定自己写的这个博客系统也使用markdown。

问题分析

markdown语法解析需要引入markdown相关的js,并使用该js中定义的方法格式化博客内容。

解决办法

引入showdown.min.js文件,同时使用如下自定义代码格式化博客内容:


var text = data.blogContent;
var converter = new showdown.Converter();
var html = converter.makeHtml(text);
document.getElementById("curcontent").innerHTML = html;

jpa关联查询的问题

问题描述

博客中实体类的初始设计是单独的userModelblogModel,如果要在显示某篇博客时显示出作者名称等信息,则需要根据blog表中的userId字段再查user表。

问题分析

jpa里边也可以自定义sql,但是总感觉这样会很麻烦。
而且从某种程度而言,jpa应该不至于连这么简单的需求都无法处理,于是经过查找,得到了关联关系的解决办法。

解决办法

blog表和user表都保持不变,在blog表中有一个字段userid用来保存作者的id。
userModel保持不变,在blogModel中userId的属性使用如下定义:


@JoinColumn(name = "user_id")
@ManyToOne
private Userinfo userinfo;

@JoinColumn注解指定了关联字段,@ManyToOne声明关联关系是多对一。
之后使用jpa的查询方法,例如userDao.findAll(),进行查询时,每一条blog记录中都会带上相应的user对象,也就只需要一次查询数据库就够了。

使用thymeleaf模板后,不能返回对象给前台

问题描述

使用thymeleaf模板渲染页面的时候,spring的controller的方法只需要return一个html的页面文件名就行了,例如index.html,就写成return "index";
使用过程发现这里不是只需要写成return "index",而是必须写成这样,还必须有这个页面存在,否则报错。
例如我本来想在某个方法中返回一个blog对象给前台,但是向这个方法发起请求时后台报错如下:


org.thymeleaf.exceptions.TemplateInputException: Error resolving template
"tzxblog/openBlog", template might not exist or might not be accessible by any of
the configured Template Resolvers

问题分析

看到上边的问题,我猜测可能是用了模板以后,会对所有return的内容进行解析渲染,但是对象是不能直接渲染成html的,因此就解析出错。
这个时候我有两种解决办法,一种是把数据放到modelMap中,然后使用类似th:text这样的方式取得数据,之后还是return回一个html页面。
但是这个地方我不想这样,因为我用了ajax请求,就想要在ajax中获取到返回的数据后进行一定的前台处理,因此就必须要找到能让我返回对象的办法,好在后来在查询的过程中,从其他地方获取到了对的解决办法。

解决办法

在需要返回对象或者普通数据的方法上加上@ResponseBody注解,有了这个注解以后,thymeleaf模板就不会再做其他的处理,也就相当于暂时和thymeleaf没了关系。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
11月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
232 11
|
存储 监控 安全
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
面对市面上眼花缭乱的双模芯片,许多应用方案商往往挑花了眼,不知道该选择哪款。今天我们推荐是天猫精灵联合平头哥推出的TG7100CWiFi&BLE双模芯片。它具有低功耗、宽工作温度等特点,广泛适用于智能家居,电工照明等领域。
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
|
10月前
|
Web App开发 搜索推荐 开发者
浏览器插件上架指南:如何把你的产品搬上浏览器插件市场
在实践了 Chrone、Firefox、Edge、Opera 等 几个主要的插件平台的上架发布工作后,我觉得很有必要把这个过程和思考记录下来,分享给大家,希望能提供一些参考和避坑的经验。我想通过这篇文章,和大家聊聊「为什么我要做这件事」,以及「这个系列文章会包含哪些内容」。我想用一个系列的文章,记录我是如何把 EmojiClick 搬到浏览器插件市场的,也给大家提供一些借鉴经验。
263 19
ly~
|
存储 SQL NoSQL
数据库介绍
数据库是组织、存储和管理数据的仓库,分为关系型(RDBMS)和非关系型(NoSQL)。RDBMS 如 MySQL、Oracle 和 SQL Server 通过表间关系存储结构化数据;NoSQL 包括 MongoDB、Redis 和 Neo4j,处理非结构化数据。数据库功能组件有数据定义语言(DDL)、数据操作语言(DML)和数据库管理系统(DBMS)。应用场景涵盖企业资源规划(ERP)、电子商务和大数据分析,支持自动化管理、数据分析及决策支持。
ly~
262 3
|
机器学习/深度学习 人工智能 算法
Meta 联合纽约大学和华盛顿大学提出MetaCLIP,带你揭开CLIP的高质量数据之谜
【5月更文挑战第16天】MetaCLIP是Meta、纽约大学和华盛顿大学合作提出的新预训练方法,旨在揭秘并复现CLIP模型的高质量数据收集。通过元数据筛选和平衡算法,MetaCLIP能从网络爬取的原始数据中选出优质图像-文本对,减少噪声并增强数据信号。实验显示,MetaCLIP在多个基准测试中超越CLIP,特别是在零样本ImageNet分类任务中取得显著提升。该方法的开源性质促进了社区研究,但面临训练速度慢和需针对特定数据优化的挑战。[[arxiv.org/abs/2309.16671](https://arxiv.org/abs/2309.16671)]
342 2
|
Python
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
1175 0
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
|
12月前
|
消息中间件 监控 数据可视化
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
320 3
|
存储 Java 关系型数据库
【Kafka+Flume+Mysql+Spark】实现新闻话题实时统计分析系统(附源码)
【Kafka+Flume+Mysql+Spark】实现新闻话题实时统计分析系统(附源码)
467 1
【Kafka+Flume+Mysql+Spark】实现新闻话题实时统计分析系统(附源码)
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(一)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
948 0
|
编解码 BI API
气象数据下载网站整理
气象数据下载网站整理
1167 2