Spring
文章平均质量分 74
黄泥川水猴子
焦虑没有用,得学习
展开
-
SpringBoot自动装配原理
SpringBoot所具备的特征有:可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;内嵌Tomcat或Jetty等Servlet容器;提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;尽可能自动配置Spring容器;提供准备好的特性,如指标、健康检查和外部化配置;绝对没有代码生成,不需要XML配置。SpringBoot会将所有的功能场景都封装成一个一个的启动器,供开发人员使用。主程序//@Spr原创 2022-05-17 10:56:22 · 392 阅读 · 0 评论 -
MyBatis的工作原理
MyBatis的工作原理1)读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。2)加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。3)构造会话工厂:通过 MyBatis 的环原创 2022-05-13 14:52:00 · 153 阅读 · 0 评论 -
SpringMVC 常用注解
@Controller@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。@RequestMappingRequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方原创 2022-05-12 16:55:14 · 271 阅读 · 0 评论 -
Tomcat和SpringMVC的关系
Tomcat是一个web服务器&&应用流程1) 用户通过浏览器进行了一个操作,比如输入网址并回车,或者是点击链接,接着浏览器获取了这个事件。2) 浏览器向服务端发出TCP连接请求。3) 服务程序接受浏览器的连接请求,并经过TCP三次握手建立连接。4) 浏览器将请求数据打包成一个HTTP协议格式的数据包。5) 浏览器将该数据包推入网络,数据包经过网络传输,最终达到端服务程序。6) 服务端程序拿到这个数据包后,同样以HTTP协议格式解包,获取到客户端的意图。7) 得知客户端意图原创 2022-05-12 15:41:18 · 3395 阅读 · 1 评论 -
一张图解决Spring MVC执行流程
原创 2022-05-12 11:19:17 · 114 阅读 · 0 评论 -
spring中bean的线程安全问题
Bean的线程安全分析对于prototype作用域的Bean,每次都创建一个新对象,也就是线程之间不存在Bean共享,因此不会有线程安全问题。对于singleton作用域的Bean,所有的线程都共享一个单例实例的Bean,因此是存在线程安全问题的。但是如果单例Bean是一个无状态Bean,也就是线程中的操作不会对Bean的成员执行查询以外的操作,那么这个单例Bean是线程安全的。解释一下:无状态Bean(Stateless Bean):就是没有实例变量的对象,不能保存数据,是不变类,是线程安全原创 2022-05-10 15:33:48 · 2748 阅读 · 1 评论 -
AOP中的动态代理的区别--JDK和CGLIB
区别spring AOP的底层实现机制是动态代理,动态代理有JDK 和CGLIB 动态代理下面说一下这两种动态代理的区别:1、JDK动态代理只提供接口的代理,不支持类的代理jdk会在运行时为目标类生成一个 动态代理类$proxy*.class该代理类是实现了目标类接口的一个类,并且会实现接口所有的方法增强代码调用时 通过先去调用处理类进行增强,再通过反射的方式进行调用目标方法,从而实现AOP2、如果代理类 没有实现接口,那么spring AOP会选择使用CGLIB来动态代理目标类CGL转载 2022-05-10 10:39:36 · 1909 阅读 · 0 评论 -
单例设计模式在Spring中的应用
一.实现一个单例可以使用如下的步骤实现一个单例类:单例设计模式的实现流程1、将构造方法私有化,使用private关键字修饰。使其不能在类的外部通过new关键字实例化该类对象。2、在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。3、对外提供一个静态方法getInstance()负责将对象返回出去,使用public static修饰首先单例方法的构造方法是一个私有的方法,不可以通过构造器的方式进行构建,只能通过getInstance()方法获取单例。下边的i原创 2022-05-09 15:01:00 · 2031 阅读 · 0 评论 -
Spring AOP——Spring 中面向切面编程
部分参考资料: 《Spring实战(第4版)》《轻量级 JavaEE 企业应用实战(第四版)》什么是 AOPAOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。从该图可以很形象地看出,所谓切面,相当于应用对象间的横切点,我们可以将其单独抽象为单独的模块。为什么需要 AOP让你对每个功能都做个日志功能。你会发现,时.原创 2022-04-27 16:24:58 · 129 阅读 · 0 评论 -
Spring面经
spring di 的原理然后又问了一下我自己对 SpringBoot 的理解你觉得 Spring 框架的 Listener 是什么模式,你用过吗?你对 Spring 的了解是通过什么学习的呢?你能说一下 Listener 的执行顺序吗?你了解 Spring 的 AOP 编程吗?那 AOP 有几种切面?spring 源码的理解springboot 启动流程。SpringMVC 和SpringBoot 的区别SpringMVC 处理请求url 的过程Spring 中应该用了很多设计模式吧,说原创 2022-04-25 23:14:40 · 569 阅读 · 0 评论 -
Spring作用域相关知识singleton 和 prototype
创建一个user对象@Datapublic class User { private String id; private String name; private Integer age;}创建一个applicationContext.xml的配置文件<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"原创 2022-04-15 10:02:19 · 151 阅读 · 0 评论 -
Spring DI(依赖注入)之三种依赖注入类型
字段注入首先,我们可以使用字段注入。想要在一个类中通过字段的形式注入某个对象,可以采用这样的方式:public class ClientService { @Autowired private HealthRecordService healthRecordService; public void recordUserHealthData() { healthRecordService.recordUserHealthData(); }.原创 2022-04-14 22:59:43 · 1285 阅读 · 0 评论