当前位置: 首页 > 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/611140/

相关文章:

  • Fiber上下文切换开销骤降68%,PHP 8.9原生异步I/O调优全路径,从配置到压测
  • 【工程师必备】DCDC环路测试实战避坑指南,手把手教你精准测量!
  • 2026年靠谱的塑料设备焊接加工服务/泸州塑料设备焊接厂家推荐与选型指南 - 行业平台推荐
  • Linux CFS 的 sched_wakeup_granularity_ns:唤醒抢占的阈值控制
  • 想在宜昌考证?先看看这几家学校的学员评价,提分/学历提升/考研/艺术设计培训/考证,考证冲刺班推荐分析 - 品牌推荐师
  • Phi-4-mini-reasoning应用场景:IT运维故障根因分析的自动化推理助手
  • 【入门级-算法-7、搜索算法:广度优先搜索】
  • 2026年,教培机构不可错过的在线教学平台大盘点
  • S7 adapter Docker run
  • 2026年口碑好的成都信息化测试/信息化实力公司推荐 - 行业平台推荐
  • 深入解析dify中的TF-IDF与余弦相似度在RAG重排序中的应用
  • RVC在元宇宙中的应用:虚拟人实时语音驱动、跨平台声纹同步
  • MiniCPM-V-2_6法律文书理解:合同条款识别+风险点标注效果展示
  • 从源码视角看OnlyOffice Connector:企业版与社区版功能差异深度解析与二次开发选型建议
  • 海外游戏SEO实战:巴西/印度市场引流经验与项目合作
  • [架构解析] 电商矩阵的“防盗门”:用独立定制 RPA 与底层群控实现员工隔离与核心 SOP 保密
  • Python爬虫终极提速:异步IO(asyncio+aiohttp)优化,比多线程还快4倍
  • 【开源】从设计文档到可交付技术交底书:专利.Skill
  • 前端设计融合:忍者像素绘卷:天界画坊生成UI/UX素材实战
  • 企业内推码寻求,助力获取奖励金,助力大家求职,实现双赢
  • 单模型时代结束了,多模型切换才是未来工作流
  • 煤化工行业实时空间孪生系统解决方案
  • Phi-4-mini-reasoning辅助JDK版本升级评估:兼容性风险智能识别
  • Filter下固定块半导体设备PP精密加工案例 | 莱图加工程师实录
  • Llama-3.2V-11B-cot惊艳效果:手写公式图→识别→数学推导→结论验证全链路
  • Ollama小白入门:从零开始使用Yi-Coder-1.5B,体验AI写代码
  • all-MiniLM-L6-v2部署详解:GPU算力友好型轻量模型在Ollama中的优化实践
  • Windows Defender 移除工具深度解析:架构设计与企业级部署指南
  • DotNetPy:现代.NET 与 Python 互操作 实战指南临
  • 免费数字人形象哪里找?lite-avatar形象库150+资源实测