SLF4J
Simple Logging Facade for Java(具体的一种实现)
应用此 API 的起因
1)此 API 定义了日志的标准 - 程序中倡议耦合标准(其目标
进步其可扩展性)
2)此 API 的具体实现
ch.qos.logback.classic.logger
3)为什么不必 log4j
SpringBoot 内置就是 logback(它自身的性能比拟 log4j 好)
异步日志:logback~~~~
4)我的项目中的日志大部分是异步(logback)写的,是为了进步用户体验
日志有八种级别
mvc
mvc 是什么
视图层(View), 管制层(Controller), 模型层(Model), 通过这样的分层设计让咱们程序具备更好的灵活性和可可扩展性. 因为这样能够将一个简单应用程序进行简化, 实现各司其职, 各尽所能. 比拟适宜一个大型利用的开发
网页呈现日志 404 问题查找
url 门路有问题或者服务器没有失常启动
确定端口是否统一(server.port=80 在 application.properties 里改端口为 80)
是否有注解形容
网页日志 500 谬误(TemplateInputException 模板解析异样)
请看服务端异样
指定的目录不存在(门路有可能不对)
springboot 配置文件的模板前缀后缀(后缀默认为 spring.thymeleaf.suffix=.html, 前缀须要本人去配置 spring.thymeleaf.prefix=classpath:/templates)与 wed 配置不统一
次要就是 springmvc 响应和申请的形式以及流程。
//1. 返回值会交给 DispatcherServlet 对象进行解决
//2.DispatcherServlet 对象会调用 viewresolver 对后果进行解析
//2.1 基于 viewname 找到对应的 view 页面(prefix+viewname+suffix)
//2.2 将 model 中的数据填充到 view 页面上
//2.3 返回一个带有 module 数据的页面给 DispatcherServlet
//3.DispatcherServlet 将带有 model 数据的页面响应到客户端
流程图 MVC
spring.thymeleaf.cache=false(对 view 的缓存时能够编译)
model 底层是通过 map 贮存数据的
在 springmvc 中会帮咱们封装成 modelandview 对象
客户端向服务器发送一个申请,服务端解决完申请之后,间接响应数据封装到 model 中 而后和 view 一起响应给客户端
问题?
1)在这种利用实现过程中,如果 controller 解决数据的工夫比拟长,会间接影响页面响应工夫长,给用户带来的体验不好
2)在以后大前端高速倒退的过程中,各中端都有,有的端可能只须要服务端的数据但不须要服务端页面,而咱们将数据和页面绑定在一起返回,这样做扩展性不好
阐明:很多种小型企业外部的管理系统间接就是 springboot+thymyleaf 技术实现
注:开源网页能够看看 Ruoyi
json 是一种轻量级
说说你对依赖注入的了解
- 谁依赖于谁:当然是应用程序依赖于 IoC 容器;
- 为什么须要依赖:应用程序须要 IoC 容器来提供对象须要的内部资源;
- 谁注入谁:很显著是 IoC 容器注入应用程序某个对象,应用程序依赖的对象;
- 注入了什么:就是注入某个对象所须要的内部资源(包含对象、资源、常量数据)。
谈谈你对 MVC 的了解
MVC 是 Model—View—Controler 的简称,MVC 是一种设计模式
视图: 视图是用户看到并与之交互的界面。视图向用户显示相干的数据,并承受用户的输出。视图不进行任何业务逻辑解决。
模型: 模型表示业务数据和业务解决。相当于 JavaBean。一个模型能为多个视图提供数据。这进步了应用程序的重用性
控制器: 当用户单击 Web 页面中的提交按钮时, 控制器承受申请并调用相应的模型去解决申请。
而后依据解决的后果调用相应的视图来显示解决的后果。
MVC 的处理过程:首先控制器承受用户的申请,调用相应的模型来进行业务解决,并返回数据给控制器。控制器调用相应的视图来显示解决的后果。并通过视图出现给用户。
2. 我的项目中为什么应用 SSH
(1). 应用 Struts 是因为 struts 是基于 MVC 模式的, 很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts 有着丰盛的 taglib, 如能灵活运用,则能大大提高开发效率。
(2). 应用 Hibernate:因为 hibernate 为 Java 利用提供了一个易用的、高效率的对象关系映射框架。hibernate 是个轻量级的持久性框架,功能丰富。
(3). 应用 Spring:因为 spring 基于 IoC(Inversion of Control,反向管制)和 AOP 构架多层 j2ee 零碎的框架,但它不强制你必须在每一层中必须应用 Spring,因为它模块化的很好,容许你依据本人的须要抉择应用它的某一个模块;采纳 IoC 使得能够很容易的实现 bean 的拆卸,提供了简洁的 AOP 并据此实现事务管理(Transcation Managment), 等等
- JAVA 三大框架的各自作用
hibernate 是底层基于 jdbc 的 orm(对象关系映射)长久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是 Model;
struts 提供的丰盛标签是用于显示层 View; 同时 struts 也充当了实现 Control 的性能 (不论是 Struts1,还是 Struts2),接管参数,视图散发。
Spring 是用于升高层与层间耦合度的,就是所有的类都能够由 spring 对立创立,用时只需注入即可(IOC)
从性能上来说,hibernate 为 M,struts2 为 V,也能够为 C,spring 能够为 C。
但大多数我的项目中,hibernate 为 M,struts2 为 V +C,spring 用来帮忙治理类以及实现一些业务无关性能,如日志记录等,大多数都是用 struts 来做 C 的。put 的底层实现