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

C# 面试高频题:装箱和拆箱是如何影响性能的?菩

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

相关文章:

  • SRWE终极指南:Windows窗口实时编辑器的深度应用与工作流优化
  • HCL华三模拟器三层交换机多VLAN DHCP配置实战
  • BGE-Large-Zh从零开始:中小企业私有知识库语义搜索工具部署教程
  • 《MySQL基础 | 从0到1学会写SQL》
  • Selenium+图鉴平台实战:5分钟搞定欧模网滑动验证码自动登录(附完整代码)
  • 别让AI代码,变成明天的技术债甭
  • 终极免费电脑加速方案:Mem Reduct内存管理完整指南
  • Consistency-guided Differential Decoding for Enhancing Semi-supervised Medical Image Segmentation
  • 高防服务器端口被占用 / 不通?端口映射与协议配置解决
  • 一个简洁易用的 Delphi JSON 封装库,基于 System.JSON`单元封装,提供更直观的 API行
  • SpringCloud进阶--Seata与分布式事务方
  • 计算机毕业设计:Python大气污染物浓度预测与评估系统 Django框架 可视化 数据分析 Prophet时间序列 大数据 大模型 深度学习(建议收藏)✅
  • Unity 物联网通信实战:从零集成 MQTTnet 到发布订阅
  • 【MVVM实战】——从餐厅到代码:三组件协作与数据流转全解析
  • MySQL8窗口函数实战:电商数据分析场景深度解析
  • WPS宏实战:自定义快捷键一键切换字体样式
  • jstat实战指南:从基础到高级应用
  • 闲鱼自动回复软件工具闪电鱼助手如何下载?
  • 【教育部+IEEE联合背书】:2026奇点大会定义的AI原生教育三大技术栈——附可立即部署的开源工具链清单
  • Noah-MP陆面模型终极指南:从零开始掌握水文能量模拟
  • AI开发-python-langchain框架(--AI 直接生成并执行 Python 代码 )哦
  • 大模型能“原地”改参数了!字节Seed北大新论文:测试时推理无需加层重训练
  • Mastodon推出Collections功能,重塑社交账户发现体验
  • AI原生研发岗缺口高达47.6万!:2026年前必须掌握的5项硬核能力清单(附企业真实JD对标表)
  • 高效音效管理方案:Teamspeak 3音效面板全面解析
  • 优化师资与课程体系,提升备考效率
  • py每日spider案例之盘sou资源搜索接口(无加密)
  • 【若依前后端分离】业务模块404排查:从依赖注入到包扫描的完整指南
  • AI Agent设计原理与开发入门:以Phi-3-mini-4k-instruct-gguf为核心构建智能体
  • Asian Beauty Z-Image Turbo 社区作品年鉴:年度最佳生成图像鉴赏