当前位置: 首页 > news >正文

打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)晃

OCP原则

ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。

依赖倒置原则(DIP)

什么是依赖倒置原则

核心是面向接口编程、面向抽象编程, 不是面向具体编程。

依赖倒置原则的目的

降低耦合度,提高扩展力

什么是控制反转

控制反转:Ioc(Inversion of Controll),一种编程思想、设计模式。为了降低程序耦合度

反转有两点:

不在程序中采用硬编码的方式new对象,把创建对象交给别人(UserService userService = new UserServiceImplForMysql())。

不在程序中采用硬编码的方式维护对象关系。

spring框架

spring实现了Ioc,因此可以创建和维护对象见的关系。

控制反转实现方式主要有 依赖注入(Dependency Injection DI)

依赖注入的方式有以下方式:

Set注入(执行Set方法赋值)

构造方法注入(执行构造方法赋值)

依赖注入中的“依赖”、“注入”的含义

依赖:A对象和B对象的关系

注入:是一种手段,通过这种手段让A和B产生关系。

依赖注入的实现方式有:set注入和构造方法注入。

set注入

配置文件配置bean

在类中写set方法

package com.ali.service;

import com.ali.dao.UserDao;

public class UserService {

private UserDao userDao;

// set注入需要提供一个set方法,方法名以set开头,spring容器调用这个set方法注入UserDao

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

public void saveUser(){

userDao.insertUser();

}

}

这样即可注入成功。

注入外部bean

注入内部bean

注入简单类型

实际开发中,一般不会吧Date类型当作简单类型,会使用ref来注入Date类型

级联属性赋值

注入数组

注入List和Set类型

张三

里斯

詹姆思

北京

上海

广州

注入Map集合

注入Properties类型

v1

v2

v3

注入null和空字符串

注入特殊字符串

构造注入

配置文件配置bean

2.使用p命名空间注入属性,语法:p:属性名="属性值" p:属性名-ref="引用类型属性值"-->

c命名空间注入(简化构造注入)

基于xml的自动装配byName

基于xml的自动装配byType

引入外部的属性配置文件

jdbc.properties文件

jdbc.diverClass=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/spring6db?useSSL=false&server

jdbc.username=root

jdbc.password=123456

spring怎么实例化对象?

默认情况下spring通过反射机制,调用类的无参数构造方法实例化对象

把创建好的对象存储到Map结构中。

当有多个配置文件时,可读取多个配置文件

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml","spring-dao.xml");

可以在配置文件中注入jdk自带的类,只要这个类有无参数构造方法就行。

getBean()时,Bean的id不存在时会报错

从类路径之外的路径获取xml配置文件

// 读取类路径之外的配置文件

ApplicationContext context = new FileSystemXmlApplicationContext("D:/applicationContext.xml");

Object user= context.getBean("user"); // 获取spring容器中的对象

ApplicationContext的超级父接口是BeanFactory。

BeanFactory是Ioc容器的顶级接口。

spring的Ioc容器底层使用了工厂模式。

启用Log4j2

spring5之后支持Log4j2框架。

引入依赖

org.apache.logging.log4j

log4j-slf4j2-impl

2.19.0

org.apache.logging.log4j

log4j-core

2.19.0

编写配置文件,文件名必须是log4j2.xml,放在类根路径下

使用日志框架 ,在SpringTest01类中使用如下代码

Logger logger = LoggerFactory.getLogger(SpringTest01.class);

logger.info("日志信息");啦懈邮拐

http://www.jsqmd.com/news/619660/

相关文章:

  • 大模型中的格式修复、json_repair示例
  • 【信息科学与工程学】【管理科学】第六十篇 企业运营运作表02
  • 从Keep到微信:我是如何用小程序Skyline复刻主流跑步App核心功能的
  • AI原生系统吞吐量骤降之谜(GPU上下文切换+Token缓存伪共享深度拆解)
  • OpenClaw替代方案:Phi-3-mini-128k-instruct与AutoGPT的实测对比
  • 参数化三相电流/电压波形发生器,主要用于**电机控制、变频器测试、堵转实验**等场景。它根据用户设置的“工况参数”,生成带有相位差的三相正弦波信号,并支持“正常工况”和“堵转”模式
  • MogFace-large教程:如何修改webui.py源码以支持视频流实时检测
  • 如何快速掌握专业咖啡烘焙软件:Artisan烘焙数据分析工具完整指南
  • 右值和右值引用学习笔记
  • 别再浪费定时器了!用STM32F4的TIM4输出比较模式,一个定时器搞定四路独立PWM(附步进电机控制代码)
  • 2026年工业仿真动画优质服务商推荐榜:三维动画、机械动画、设备动画、三维仿真动画、工艺原理动画公司,幻像空间领衔精品动画制作 - 海棠依旧大
  • cmake之旅(2)
  • STM32嵌入AI模型实战指南
  • 打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)夹
  • 避坑指南:QTableWidget中使用QCheckBox时容易忽略的5个细节问题
  • 避坑指南|2026靠谱GEO服务商推荐 - 品牌测评鉴赏家
  • Spring Boot + Redis 缓存优化方案,解决 Redis 缓存的三大经典问题
  • 学习dp入门
  • 3步打造轻量Windows 11:tiny11builder精简系统实战指南
  • SGLang实战:如何用Python DSL编写带分支的LLM生成任务(附完整代码)
  • 喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有侥
  • 物联网云平台工业设备对接远程控制数据采集视频接入开源可二次开发 该物联网云平台使用 Java ...
  • 如何用OnmyojiAutoScript实现阴阳师全自动托管:每天节省2小时游戏时间的完整指南
  • 互联网企业项目管理的核心挑战
  • 基于MPC的模型预测轨迹跟踪控制联合仿真simulink模型+carsim参数设置 效果如图
  • 短剧付费转化系统设计:试看 + 阶梯定价 + 会员锁客全链路
  • 智慧农业无人机数字孪生系统源码:基于WebGL的3D农场可视化平台
  • 我想在豆包做广告,联系谁?第三方豆包优化方案助您精准获客 - 品牌2026
  • 扔给 AI 自动部署!Wazuh 安全监控平台 - 一键部署提示词
  • 【可信计算】TPM2-tools实战:从文件度量到完整性验证