今天是苍穹外卖项目第三天

这一周的课都很多,单周课多,下周双周的话可以多写一点代码,今天写的不多但是收获蛮多的。

今日完成状况

1.导入了分类管理接口代码

2.完成了公共字段的自动填充

今天之所以要完成这个功能就是因为,我们在插入和更新操作的时候会去更新我们的,修改时间,修改人,和创建时间和创建人,我们在写的时候就写了大量的相同代码,造成了冗余,因此我们优化我们的代码。

这里我们用到的技术包括了枚举类,反射赋值,AOP实现方法,自定义注解。在看到AOP的时候我是比较懵的,因为之前就没有怎么听懂所以我去重新学习了下一部分知识。

1.AOP和动态代理

AOP就是在不改变我们的代码前提下,增强了我们的代码功能,这就类似于动态代理

我们在创建了一个代理对象之后,我们所调用的就是代理对象,然后代理对象在来调用我们的原方法。

1.连接点:其实就是AOP能控制的方法
2.通知:也就是原方法没有是我们写的原方法需要的那部分代码

通知又被分为三大类:

1.@Around:表示这个通知会在原方法的前后都运行

2.@Before:表示在原方法之前运行

3.@After:表示在原方法之后运行

       这里呢又分三种情况

                1.@After无论方法是否有异常都执行

                 2.@AfterReturn:它是没有异常才执行

                 3.@AfterThrowing:有异常才执行

3.切入点:就是通知所运用的位置

这里有一个新东西-----------execution

我们要在哪个位置执行通知就在它里面编写位置,还有@annotation只能用于切入点是注解的时候。

其中    *    号可以表示任意一个单独的符号,而  .. "  这个符号可以表示任意个数和任意参数

@PointCut可以把公共切入点直接写出来,这样我们就可以直接调用使用这个注解的方法

前置通知@Before就是直接调用的方法

4.目标对象:就是原方法,也就是通知运用的对象

3.完成了文件的上传

这里我们运用了oss阿里云服务器,我们的图片就是上传到了这个服务器,然后后端接收服务器返回的图片URL,我们返回给前端他们调用URL进行图片显示

4.随笔

今天在课上同样背了单词,然后学习了语法,下一周就要开始把刷题进行起来了,今天虽然完成的不多,但是我收获还是很大的,我之前听不懂动态代理和AOP但是今天我回去重听的时候我发现,我完全听懂了,哇这种感觉真的好爽,然后就想一直听下去,充满了对知识的渴望哈哈哈,后面我也会继续补充一下之前没听懂的知识,这周水课太多了等下周,打算空时间就在寝室写项目了。加油吧。

### 苍穹外卖项目在阿里云平台第三天遇到的问题及解决方案 #### 部署过程中Docker容器网络配置问题 在将应用部署至阿里云的过程中,可能会遇到不同服务之间的通信问题。由于各个微服务(如Nginx、Redis、MySQL)都运行于各自的Docker容器内,因此需要确保这些容器能够相互通信并访问外部资源。 为了实现这一点,建议创建自定义的Docker网络模式,并让所有相关联的服务加入该网络。这可以通过`docker-compose.yml`文件来简化操作,在其中指定统一的网络名称和服务间的链接关系[^3]: ```yaml version: '3' services: nginx: image: nginx:latest networks: - app-network redis: image: redis:alpine networks: - app-network mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: example networks: - app-network networks: app-network: ``` #### Spring Task定时任务执行失败 根据业务需求,需定期处理特定状态下的订单记录。然而,在实际运行中发现Spring Task未能按预期触发定时任务。此类情况通常由以下几个原因引起: - **Cron表达式错误**:确认cron表达式的准确性对于保证任务按时执行至关重要。例如,用于每日凌晨一点执行的任务应设置为`0 0 1 * * ?`。 - **线程池配置不当**:默认情况下,Spring Boot应用程序中的调度器使用单一线程池。如果多个任务并发量较大,则可能导致某些任务被延迟甚至错过执行时机。适当调整线程池大小有助于提高效率[^4]。 针对上述问题,可以在application.properties或yml文件中增加如下配置项以优化性能表现: ```properties spring.task.scheduling.pool.size=5 # 设置线程池大小为5 ``` 此外,还需注意检查日志输出,排查是否有异常堆栈信息影响了任务正常启动。 #### 数据库连接不稳定 随着流量增长,数据库连接数逐渐增多,可能出现连接超时或者断开的现象。对此可采取以下措施加以改善: - 增加最大允许连接数量; - 实施读写分离策略减轻主库压力; - 启用缓存机制减少不必要的查询请求次数; 具体实施方法取决于所使用的ORM框架以及具体的业务场景。对于本案例而言,考虑到采用了MyBatis作为持久层组件,可在mybatis-config.xml或其他相应位置添加必要的参数调优语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值