发表于: 2025-05-28 20:28:22

0 37


今天完成的任务:继续学习深度思考。

10.对Service返回的结果是否要判空,为什么?

Mapper 方法通常不需要显式判空,是因为框架已经帮忙处理了常见的情况:

  • 返回单个对象时,查询无结果返回 null
  • 返回集合时,查询无结果返回空集合。
    开发者可以根据需求对结果进行必要的检查和处理,避免过度依赖判空。

11.在Controller里应该怎么处理Service的异常,大段的Try Catch 会有什么坏处?

异常类分两大类型:Error类,Exception类

    Error类代表了编译和系统的错误,不允许捕获;属于JVM运行中发生的一些错误,虽然并不属于开发人员的范畴,但是有些Error还是由代码引起的,比如StackOverflowError经常由递归操作引起

Exception分为两种,检查类型(checked)和未检查类型(unchecked)。检查类型的异常就是说要程序员明确的去声明或者用try..catch语句来处理的异常,而非检查类型的异常则没有这些限制。


异常的处理

    针对预期可能发生的异常(检查类型(checked)),在代码手动处理异常可以try/catch捕获,可以向上抛出,可以声明。

针对运行时异常,只能通过规范代码质量、在系统测试时详细测试等排除运行时异常。


在Controller里,大段的Try Catch会有什么坏处?

(1)try catch的代价比较大。相对于判断返回值,抛出异常到捕获,需要更多的cpu指令和代码

(2)Java的异常机制是由JVM控制的,业务逻辑复杂的情况下,会影响controller的执行效率


12.怎么查看Nginx的访问请求时间,多少的响应时间是合理的,并发1000和单线程访问的差别是什么,Nginx可以支持多少并发,Tomcat可以支持多少并发,为什么要在Tomcat之前配置一个Nginx?


查看请求的要求需要在 1.声明日志的格式,在nginx配置文件nginx.conf里的http下添加如下内容:

log_format test '$remote_addr - $remote_user [$time_local] "$request" '

                    '$status $body_bytes_sent $request_body "$http_referer" '

                    '"$http_user_agent" "$http_x_forwarded_for"'

                     '$upstream_addr $upstream_response_time $request_time ';

2.在需要日志的server下添加:

access_log logs/test.log test;

3.分析nginx的日志,查出需要查看消耗时间的url,用$request_time减掉$upstream_response_time。

cat test.log | grep url | awk '{print $6 " " $7 " " $8 " " $11 " " ($NF-$(NF-1))}' > c.txt

遇到的问题:小课堂没结果,在博客上找的文章讲解的不准确。


13.域名和端口号是怎么对应起来的?应该通过域名访问吗,从域名服务商到服务器的流程是怎么样的?

参考文献:https://blog.csdn.net/qq_43778308/article/details/109382424

域名系统DNS是互联网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库。比如:

域名如:alibaba.com (URL地址)
IP地址为:xx.233.xxs.12 (访问)


1.背景介绍

当我们把项目部署到自己的服务器上以后,一般可以通过两种形式访问项目,一种是ip+端口号,还有一种是域名访问.

那么这两种访问项目的方式的区别是什么呢?哪一种更好一些?IP,域名,端口号之间有什么联系呢?

IP,域名,端口号的基本概念

(1) IP

IP,(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给网络上使用IP协议的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。目前我们使用的都是IPv4的地址,IPv4地址由32位二进制数组成,常以XXX.XXX.XXX.XXX形式表现。(以上参考于维基百科)

通俗点说就是IP地址是用于标识出网络上的每一台主机的编号。有这个编号,网络上的其他主机才能在互联网浩若繁星的主机中定位到唯一的一台主机。

(2)域名

域名,(英语:domain name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。(以上参考于维基百科)

域名和IP地址之间有区别也有联系,域名通常会和IP进行绑定,通过访问域名来访问网络上的主机的服务。IP地址通常指的是网络中的主机,而域名则通常表示一个网站,一个域名可以绑定到多个ip上,多个域名也可以绑定到一个ip上。

(3)端口号

端口,(英语:port),主要分为物理端口和逻辑端口。我们一般说的都是逻辑端口,用于区分不同的服务。因为网络中一台主机只有一个IP,但是一个主机可以提供多个服务,端口号就用于区分一个主机上的不同服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口,标识是从0~65535.(以上参考于维基百科)

端口号分为公认端口(01023)、注册端口(102449151)和动态端口(49152~65535)。我们自己的服务一般都绑定在注册端口上。

收获:对端口和域名讲解的很深刻。


明天的计划:继续任务二的深度思考开始学习。


返回列表 返回列表
评论

    分享到