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

做建材商城网站/泰安百度推广代理

做建材商城网站,泰安百度推广代理,我40岁自学cad找到工作了,wordpress主题模板下载IOC,AOP? IOC(控制反转)是一种设计模式,它将对象的创建、依赖注入和管理交给了容器来完成,而不是由开发者手动管理。 这样做的好处是降低了组件之间的耦合度,提高了代码的可维护性和可扩展性。 …

IOC,AOP?
IOC(控制反转)是一种设计模式,它将对象的创建、依赖注入和管理交给了容器来完成,而不是由开发者手动管理。
这样做的好处是降低了组件之间的耦合度,提高了代码的可维护性和可扩展性。
AOP(面向切面编程)是一种编程思想,将应用业务逻辑和系统服务分离开,可以通过配置文件或注解的方式来定义切面和切点


Spring注入Bean的几种方式?
静态注入
工厂注入
set注入
构造注入


Bean的生命周期?
实例化->属性赋值->初始化->使用->销毁

Trancational注解的作用?
用于标记需要进行事务管理的方法或类,在执行过程中自动开启事务,简化事务管理代码,并提供了灵活的事务属性配置。

Spring常用注解有哪些?注解的作用,以及相似注解有何区别?
@Component:标记一个类为Spring容器的组件,通常用于普通的Java类。
@Controller:标记一个类为Spring MVC的控制器,负责处理用户请求并返回响应结果。
@Service:标记一个类为业务逻辑层(Service层)的组件,通常被用于注解Service类。
@Repository:标记一个类为持久层(Repository层)的组件,通常被用于注解DAO类。
@Autowired:自动装配,通过类型进行自动装配,将对应类型的Bean注入到属性、构造方法或方法参数中。
@Qualifier:结合@Autowired使用,通过指定Bean的名称来指定具体要注入的Bean。
@Value:注入属性值,可以将配置文件中的值注入到属性中。
@RequestMapping:用于映射请求路径和处理方法,指定URL与方法的对应关系。
@PathVariable:用于获取请求路径中的占位符参数。
@RequestBody:将请求体的内容绑定到方法的参数上。
@ResponseBody:将方法的返回值直接作为响应体返回给客户端。
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping:更具体的映射注解,用于定义特定HTTP方法的请求映射。
相似注解的区别主要体现在使用场景和语义上的差异:
@Component、@Service和@Repository都可以用来标识组件,但它们的意图和使用场景不同。@Component是通用的组件标识,可以用于任何类型的组件;@Service通常用于标识业务逻辑层的组件;@Repository通常用于标识持久层(DAO)的组件。
@Autowired和@Qualifier常一起使用,@Autowired根据类型进行自动注入,而@Qualifier根据名称指定具体要注入的Bean。这两个注解可以结合使用,实现更精细的依赖注入。
@RequestMapping是Spring MVC的核心注解,用于映射请求路径和处理方法;@GetMapping、@PostMapping、@PutMapping、@DeleteMapping是对@RequestMapping的更加具体的映射注解,用于定义特定HTTP方法的请求映射。

 

Component与Bean的区别?
Component是一个用于标识类的注解,用于告诉Spring这个类是—个组件。
而Bean是一个在Spring容器中被管理的对象,可以是Component 注解标记的类,也可以是其他定义方式创建的对象。


BeanFactory、FactoryBean和ApplicationContext的区别?
BeanFactory(Bean工厂):是Spring框架中最基本的IoC容器,负责管理和创建Bean对象。它提供了基本的Bean定义、创建和获取功能
FactoryBean(工厂Bean):是一个特殊的Bean,它是通过实现FactoryBean接口来创建Bean实例的,可以自定义创建Bean。
ApplicationContext(应用上下文):是Spring框架中最常用的高级IoC容器,继承自BeanFactory接口,提供了更多的功能和特性。ApplicationContext在加载配置文件时就实例化所有的Bean,并完成Bean的依赖注入,因此比BeanFactory更加重量级。

 

Spring循环依赖问题如何解决?常见的解决方案?
三级缓存来解决
三级缓存:创建对象的工厂
二级缓存:没有初始化的半成品对象
一级缓存:完整对象,可以直接使用
三级缓存new了对象a和对象b,属性填充的时候b需要引用a,a进入二级缓存,b完成生命周期结束进入一级缓存,a从二级缓存进入一级缓存,
现在ab全部进入了一级缓存,拿到了ab对象

二级缓存可以解决循环依赖问题吗?
使用三级缓存的目的是为了不破坏Bean的生命周期,不使用AOP的动态代理二级缓存也是可以的
用了动态代理的话,多次获取动态代理的对象是不同的,不能解决

Spring的事务传播机制?
Spring的事务传播机制是指在一个业务方法调用另一个业务方法时,如何处理事务的传播行为。
REQUIRED(默认):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是最常用的传播行为,它确保多个业务方法在同一个事务中执行。

常见的事务失效的场景有哪些?
没有用public修饰
this调用不会使用动态代理对象
没有用Spring容器去管理的Bean

Spring事务的底层实现原理?
AOP动态代理实现


spring bean是线程安全吗?
单例模式 线程不安全, 在单例作用域下,Spring容器只会创建一个Bean实例,并且该实例会被多个线程共享。
原型模式 线程安全,   在原型模式下,每次获取Bean时,都会创建新的Bean实例,线程安全。

 

Spring框架中使用了那些设计模式?谈—谈
IOC 通过IoC容器,Spring实现了对象的创建和管理,将对象的控制权交给了框架。
DI 通过DI,Spring框架负责将对象的依赖关系注入到对象中,而不是由对象自行创建依赖对象。这样可以降低对象之间的耦合性,提高代码的可维护性和扩展性。
工厂模式 BeanFactory作为IoC容器,负责创建和管理Bean的生命周期。它根据配置信息创建Bean实例,并在需要时将Bean注入到其他对象中。
单例模式 通过单例模式,Spring确保每个Bean只有一个实例存在于容器中,并且可以被多个对象共享使用。
动态代理 AOP借助动态代理实现,通过动态代理技术,Spring能够在运行时为目标对象动态生成代理对象,并在代理对象中添加切面逻辑。

springMVC分别代表什么?对应处理什么逻辑功能?
Model(模型):Model用于封装从数据库或其他数据源中获取的数据,以供视图(View)显示,Model可以通过ModelAndView对象传递给视图
View(视图):View负责展示数据给用户,并生成最终的响应结果。
Controller(控制器):Controller接收并处理用户的请求,并调用相应的服务或业务逻辑来完成请求的处理。

SpringBoot的启动流程?
1、SpringBoot加载application.properties或application.yml等配置文件
2、创建Application上下文执行环境
3、扫描注册Bean
4、加载配置,连接池,web容器
5、运行应用程序,启动内嵌的Tomcat,web服务器监听指定端口,处理HTTP请求并转发
6、调用服务,访问数据库

Spring,SpringBoot、SpringMVC的区别?
Spring:Spring是一个轻量级的Java开发框架,Spring框架的核心特性包括依赖注入(DI)、面向切面编程(AOP),也可以与Hibernate、MyBatis集成
SpringBoot:集成了内嵌的Tomcat服务器,让开发者更快的去构建web服务
Spring MVC:Web框架,提供一套丰富的功能组件,Spring MVC可以将请求的URL映射到对应的处理方法上,并通过ModelAndView对象将模型数据渲染到视图上。

 

SpringBoot与SpringCloud的区别
Spring Boot用于快速构建独立的Spring应用程序,而Spring Cloud用于构建分布式系统和微服务架构。
Spring Boot关注于单个应用程序的开发,提供了各种开箱即用的特性
Spring Cloud关注于分布式系统的开发,提供了一套分布式系统的解决方案。
在实际开发中,可以同时使用Spring Boot和Spring Cloud来构建高效、可扩展的分布式应用程序。


AOP底层是怎么实现的?
基于接口的动态代理使用Java的Proxy类来实现
基于类的动态代理使用CGLIB来生成子类,并覆盖被代理类的方法。

Aop有几种实现方式?有哪些区别?
JDK动态代理,JDK动态代理是基于Java的Proxy类实现的,动态生成目标对象的代理对象,不需要手动创建
CGLIB动态代理,通过生成目标类的子类,并覆盖其中的方法来实现代理。
相比于JDK动态代理,CGLIB动态代理的代理过程更加底层,性能也更高,但生成的代理类可能比较复杂。


springboot自动装配原理?
读取spring.factories文件,然后获取到EnableAutoConfiguration对应的值就是我们自动装配的默认配置类的全类名,
拿到这个集合后经过验证,去重,排除自动装配以及执行监听器等操作最终返回String数组,此数组就是我们最终要自动装配的配置类集合,SpringBoot再根据这些数据进行配置类的加载,完成整个自动装配。

 

restcontroller和controller区别是什么?
1.用Controller配合视图解析器才能返回到指定页面。在对应的方法上加上ResponseBody注解才能返回JSON,XML或自定义mediaType的内容到页面。
2.不可以只用RestController注解Controller,因为这样会让Controller中的内容不能返回jsp页面,而且会直接返回Return里的内容。
3.RestController相当于Controller和ResponseBody两者合并起来的作用。

requestbody和responsebody的区别?
@RequestBody用于获取请求体中的数据并将其转换为方法参数,@ResponseBody用于将方法的返回值直接作为响应体返回给客户端


autowhile和resource注解的区别
@Autowired和@Resource都是用于依赖注入的注解,但是@Autowired是Spring框架提供的注解,按照类型自动装配;而@Resource是Java EE规范的注解,按照名称自动装配。

对象的生命周期?
创建->使用->销毁->垃圾回收

component和Bean注解的区别?
@Component 注解作用于类,而 @Bean 注解作用于方法、
@Component 通常是通过路径扫描来自动侦测以及自动装配到 Spring 容器中
@Bean 告诉了 Spring 这是某个类的实例,当我们需要用它的时候还给我。


spring中的事务?
声明式事务:通过在配置文件中或使用注解的方式声明事务的属性,让Spring框架自动为方法或类应用事务管理
编程式事务:通过编写代码手动管理事务的开启、提交、回滚等操作。在编程式事务管理中,需要使用Spring提供的TransactionTemplate或PlatformTransactionManager接口来进行事务控制。


相关文章:

一零七一、Spring大海捞针篇

IOC,AOP? IOC(控制反转)是一种设计模式,它将对象的创建、依赖注入和管理交给了容器来完成,而不是由开发者手动管理。 这样做的好处是降低了组件之间的耦合度,提高了代码的可维护性和可扩展性。 …...

请求并发控制

请求并发数量控制 并发限制 要求:多个请求做并发限制,请求完成后执行回调 思路: 首次循环启动能够执行的任务 取出能执行的任务推入执行器执行 执行器更新当前并发数,并且再请求完成时继续取出任务推入执行器 当所有请求完…...

创建密码库/创建用户帐户/更新 Ansible 库的密钥/ 配置cron作业

目录 创建密码库 创建用户帐户 更新 Ansible 库的密钥 配置cron作业 创建密码库 按照下方所述,创建一个 Ansible 库来存储用户密码: 库名称为 /home/curtis/ansible/locker.yml 库中含有两个变量,名称如下: pw_developer&#…...

vue实现穿梭框,ctrl多选,shift多选

效果图 代码 <template><div class"container"><!--左侧--><div><div class"title">{{ titles[0] }}</div><div class"layerContainer"><div v-for"item in leftLayerArray":key"…...

Win11中zookeeper的下载与安装

下载步骤 打开浏览器&#xff0c;前往 Apache ZooKeeper 的官方网站&#xff1a;zookeeper官方。在主页上点击"Project"选项&#xff0c;并点击"Release" 点击Download按钮&#xff0c;跳转到下载目录 在下载页面中&#xff0c;选择版本号&#xff0c;并点…...

ubuntu22.04 找不到串口,串口ttyusb时断时续的问题(拔插以后能检测到,过会儿就检测不到了)

1. 问题描述 ubuntu22.04的PC&#xff0c;在连接USB串口的时候&#xff0c;有时能找到ttyUSB0,有时找不到&#xff0c;如下&#xff1a; base) airsairs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB* crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:36 /dev/ttyUSB0 (base) air…...

Pinia基础教程

Pinia wiki Pinia 起始于 2019 年 11 月左右的一次实验&#xff0c;其目的是设计一个拥有组合式 API 的 Vue 状态管理库。从那时起&#xff0c;我们就倾向于同时支持 Vue 2 和 Vue 3&#xff0c;并且不强制要求开发者使用组合式 API&#xff0c;我们的初心至今没有改变。除了安…...

【NOIP】标题统计

author&#xff1a;&Carlton tags&#xff1a;模拟&#xff0c;字符串 topic&#xff1a;【NOIP】标题统计 language&#xff1a;C website&#xff1a;P5015 [NOIP2018 普及组] 标题统计 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) date&#xff1a;2023年8月20日…...

BOXTRADE-天启量化分析平台 系统功能预览

BOXTRADE-天启量化分析平台 系统功能预览 系统功能预览 1.登录 首页 参考登录文档 2. A股 行情与策略分析 2.1 A股股票列表 可以筛选和搜索 2.2 A股行情及策略回测 2.2.1 行情数据提供除权和前复权&#xff0c;后复权数据&#xff1b;外链公司信息 2.2.2 内置策略执行结果…...

解决Kibana(OpenSearch)某些字段无法搜索问题

背景 最近在OpenSearch查看线上日志的时候&#xff0c;发现某个索引下有些字段无法直接在界面上筛选&#xff0c;搜索到也不高亮&#xff0c;非常的不方便&#xff0c;就像下面这样 字段左侧两个筛选按钮禁用了无法点击&#xff0c;提示 Unindexed fields can not be searched…...

代码随想录训练营day15|102.层序遍历 226.翻转二叉树 101.对称二叉树

TOC 前言 代码随想录算法训练营day15 一、Leetcode 102.层序遍历 1.题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 (即逐层地&#xff0c;从左到右访问所有节点)。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a…...

Nginx 配置https以及wss

一、申请https证书 可以在阿里云申请免费ssl证书&#xff0c;一年更换一次 二、Nginx配置ssl upstream tomcat_web{server 127.0.0.1:8080; }server {listen 443 ssl;server_name www.xxx.com;## 配置日志文件access_log /var/log/nginx/web/xxx-ssl-access.log main;er…...

Log4net在.Net Winform项目中的使用

引言&#xff1a; Log4net是一个流行的日志记录工具&#xff0c;可以帮助开发人员在应用程序中实现高效的日志记录。本文将提供一个详细的分步骤示例&#xff0c;来帮助您在.Net Winform项目中使用Log4net。 目录 一、安装Log4net二、配置Log4net三、在项目中使用Log4net四、初…...

从零到一制作扫雷游戏——C语言

什么是扫雷游戏&#xff1f; 扫雷游戏作为一种老少咸宜的益智游戏&#xff0c; 它的游戏目标十分简单&#xff0c;就是要求玩家在最短的时间内&#xff0c; 根据点击格子之后所出现的数字来找出所有没有炸弹的格子&#xff0c; 同时在找的时候要避免点到炸弹&#xff0c;一…...

Python 数据挖掘与机器学习教程

详情点击链接&#xff1a;Python 数据挖掘与机器学习教程 模块一&#xff1a;Python编程 Python编程入门 1、Python环境搭建&#xff08; 下载、安装与版本选择&#xff09;。 2、如何选择Python编辑器&#xff1f;&#xff08;IDLE、Notepad、PyCharm、Jupyter…&#xff…...

排序小白必读:掌握插入排序的基本原理

一、插入排序是什么&#xff1f; 它是一种简单直观的排序算法。类似于整理扑克牌&#xff0c;想象你手上有一堆未排序的牌&#xff0c;你将它们逐个插入已排序的牌堆中的正确位置。拿起一张牌&#xff0c;与已排序的牌进行比较&#xff0c;将它插入到合适的位置。重复这个过程…...

html常见兼容性问题

1. png24位的图片在iE6浏览器上出现背景 解决方案&#xff1a;做成PNG8&#xff0c;也可以引用一段脚本处理. 2. 浏览器默认的margin和padding不同 解决方案&#xff1a;加一个全局的 *{margin:0;padding:0;} 来统一。 3. IE6双边距bug&#xff1a;在IE6下&#xff0c;如果对…...

Docker实战:docker compose 搭建Redis

1、配置文件准备 redis 配置文件&#xff1a;https://pan.baidu.com/s/1YreI9_1BMh8XRyyV9BH08g2、创建目录并赋权 mkdir -p /home/docker/redis/data /home/redis/logs /home/redis/conf chmod -R 777 /home/docker/redis/data* chmod -R 777 /home/docker/redis/logs*3、re…...

Debian11 Crontab

Crontab用户命令 可执行文件 crontab命令的可执行文件在哪儿&#xff1f; $ which -a crontab /usr/bin/crontab /bin/crontabcrontab命令的可执行文件有2个&#xff1a;/usr/bin/crontab 和 /bin/crontab $ diff /usr/bin/crontab /bin/crontab $diff 发现这两个文件并无区…...

css 文字排版-平铺

序&#xff1a; 1、表格的宽度要有&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 2、容器不能是display:inline 3、扩展---》node全栈框架 代码 text-align-last: justify; width: 70px; display: inline-block; 主要是用于表单左侧文字排序&#xff01;...

把握潮流:服装定制小程序的发展与趋势

随着互联网的快速发展&#xff0c;小程序成为了人们生活中不可或缺的一部分。尤其在服装行业&#xff0c;定制化已经成为了一种趋势。为了满足消费者个性化的需求&#xff0c;服装定制小程序应运而生。 为了方便开发者的设计和制作&#xff0c;我们可以使用第三方的制作平台来创…...

Go 安装配置

介绍Ubuntu20.04 安装和配置Go 可以参考官网的这个为 Go 开发配置Visual Studio Code - Go on Azure | Microsoft Learn 1.安装Go 去这个地方下载Go https://go.dev/doc/install 如果之前安装过&#xff0c;可以参考这个&#xff08;没有可以忽略&#xff09; 下载完成后执…...

镜像底层原理详解和基于Docker file创建镜像

目录 一、镜像底层原理 1.联合文件系统(UnionFS) 2.镜像加载原理 3.为什么Docker里的centos的大小才200M? 二、Dockerfile 1.简介 2.Dockerfile操作常用命令 &#xff08;1&#xff09;FORM 镜像 &#xff08;2&#xff09;MAINTAINER 维护人信息 &#xff08;3&…...

k8s扩缩容与滚动更新

使用kubectl run创建应用 kubectl run kubernetes-bootcamp \> --imagedocker.io/jocatalin/kubernetes-bootcamp:v1 \> --port8080 端口暴露出去 kubectl expose pod kubernetes-bootcamp --type"NodePort" --port 8080 使用kubectl create创建应用 kubect…...

4.小程序的运行机制

启动过程 把小程序的代码包下载到本地解析app.json全局配置文件执行app.js小程序入口文件&#xff0c;调用App()创建小程序的实例渲染小程序首页小程序启动完成 页面渲染过程 加载解析页面的.json配置文件加载页面.wxml模板和.scss样式执行页面的.ts文件&#xff0c;调用Pag…...

基于 Vercel TiDB Serverless 的 chatbot

作者&#xff1a; shiyuhang0 原文来源&#xff1a; https://tidb.net/blog/7b5fcdc9 # 前言 TiDB Serverless 去年就有和 Vercel 的集成了&#xff0c;同时还有一个 bookstore template 方便大家体验。但个人感觉 bookstore 不够炫酷&#xff0c;借 2023 TiDB hackthon 的…...

Android 多渠道打包及VasDolly使用

目录 1.添加productFlavors的配置buildConfigFieldmanifestPlaceholdersresValue 2.设置apk文件的名称&#xff0c;便于识别3.添加vasdolly、添加gradle脚本&#xff08;windows&#xff09; 作用&#xff1a;一次性可以打多个apk包&#xff0c;名字、包名、logo等可以不相同。…...

LeetCode 42题:接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,…...

spring boot 提示:程序包不存在,解决方法总结

背景&#xff1a; 之前出现过这样的问题&#xff0c;打包安装父项目就好了&#xff0c;今天改了一下代码&#xff0c;重新编译的时候&#xff0c;又出现了这样的情况&#xff0c;决定深度挖掘一下这里面的问题 spring boot 提示&#xff1a;程序包不存在&#xff0c;解决方法总…...

docker项目实战

1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘 1&#xff09;拉取mysql:5.6和owncloud镜像 [rootmaster ~]# docker pull mysql:5.6 5.6: Pulling from library/mysql 35b2232c987e: Pull complete fc55c00e48f2: Pull complete 0030405130e3: Pull compl…...