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

MAUI库推荐五:Maui.PDFView

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/564136/

相关文章:

  • 用 Manim 重现有趣的知觉错觉
  • 别再只盯着线程数了!JMeter压力测试实战:从单接口到混合场景的完整配置与结果分析
  • 万象视界灵坛效果展示:多候选标签间语义冲突检测与消歧建议生成
  • GLM-4.1V-9B-Base一文详解:与Qwen-VL、InternVL2中文视觉理解对比
  • 亲测中山口碑好的可靠手机维修企业
  • 像素艺术爱好者的福音:忍者像素绘卷(天界画坊)保姆级入门
  • RK3588开发板摄像头实战:从MIPI到USB的完整配置指南(附设备树修改技巧)
  • TensorFlow-v2.9镜像新手教程:M1芯片AI开发环境配置
  • 【office2pdf】office2pdf - 产品需求文档 (PRD.md)
  • 手机也能玩转Llama3.1!用Cpolar穿透实现移动端访问LobeChat的5个技巧
  • 无需安装即可畅享B站视频:downkyi绿色版全方位使用指南
  • RTX 4090D专属优化!Wan2.2-I2V-A14B私有部署镜像,小白也能快速上手
  • 使用CMake与vcpkg简化C/C++项目依赖管理
  • 2026AI大淘汰前夜:3个自动化技能让你年薪翻倍,成为筛不掉的职场金粉!
  • VideoAgentTrek-ScreenFilter视频智能过滤实战:基于卷积神经网络的实时画面处理
  • RealRestorer:AI修复真实图像的终极利器
  • Windows Subsystem for Android实战指南:从环境配置到核心功能落地的系统方案
  • 代理IP:按流量还是按IP/时长计费更划算?
  • Flutter项目卡在‘assembleDebug’?Gradle配置优化全攻略
  • Phi-4-Reasoning-Vision入门必看:双卡4090环境配置与THINK/NOTHINK模式详解
  • OWL ADVENTURE系统清理与维护:释放C盘空间与优化存储
  • 产品好却卖不动?90%的小团队都死在这一步
  • 微信小程序集成AI能力:调用LFM2.5-1.2B-Thinking-GGUF实现智能聊天与内容生成
  • Qwen3-ASR-0.6B部署教程:腾讯云TI-ONE平台GPU训练/推理一体化部署流程
  • RWKV7-1.5B-g1a效果展示:‘请用一句中文介绍你自己’真实响应
  • AI头像生成器镜像优化:Qwen3-32B 4-bit量化后8GB显存稳定运行实录
  • 突破Windows XP/2003兼容性壁垒:One-Core-API-Source革新方案解析
  • OFA视觉问答模型镜像免配置:3条命令启动,告别pip install地狱
  • OFA模型在零售行业的视觉问答应用案例
  • 【Linux的以太网驱动的收发流程比较】