
Spring
文章平均质量分 50
欧皇小德子
这个作者很懒,什么都没留下…
展开
-
Spring启动
写完我自己都看得头大了能看就看,看不了算了,就空再拆解一下1.SpringBoot项目的启动类public static void main(String[] args) { SpringApplication.run(Application.class, args);}2.run方法//可配置的应用程序上下文,传入 启动类的class 和 启动参数public static ConfigurableApplicationContext run(Class<?&g原创 2022-03-13 01:57:10 · 1007 阅读 · 0 评论 -
Spring -> Spring Boot中配置⽂件的加载顺序是怎样的?
Spring Boot中配置⽂件的加载顺序是怎样的?优先级从⾼到低,⾼优先级的配置覆盖低优先级的配置,所有配置会形成互补配置。命令⾏参数。 -> 一定不会被覆盖Java系统属性(System.getProperties());操作系统环境变量 ;jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置⽂件jar包内部的application-{profile}.propertie原创 2022-03-09 21:00:32 · 503 阅读 · 0 评论 -
Spring Boot是如何启动Tomcat的
Spring Boot是如何启动Tomcat的⾸先,SpringBoot在启动时会先创建⼀个Spring容器在创建上下文的时候判断是否是内嵌的web服务类型,选择不同是上下文加载方式refreshContext()刷新上下文,IOC容器的创建过程的调用BeanFactoryPostProcessors -> BeanFactory后置处理器BeanFactory后置处理器中加载spring.factories内的自动配置类生成一个EmbeddedWebServerFact原创 2022-03-09 20:32:23 · 2428 阅读 · 0 评论 -
Spring -> 如何理解 Spring Boot 中的 Starter
如何理解 Spring Boot 中的 Starterstarter就是定义⼀个starter的jar包,写⼀个@Configuration配置类、将这些bean定义在⾥⾯然后在starter包的META-INF/spring.factories中写⼊该配置类springboot会按照约定来加载该配置类开发⼈员只需要将相应的starter包依赖进应⽤进⾏相应的属性配置(使⽤默认配置时,不需要配置),就可以直接进⾏代码开发,使⽤对应的功能了⽐如mybatis-spring-boot-starte原创 2022-03-09 00:35:58 · 554 阅读 · 0 评论 -
Spring -> Spring Boot ⾃动配置原理?
Spring Boot ⾃动配置原理?SpringBootApplication -> 启动类最头上的哪个注解它是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合@Configuration -> 允许在上下文中自己注册的 bean 或导入其他配置类@ComponentScan -> 扫描被@Component注解的 bean@EnableAutoConfiguration -> 启用 Sprin原创 2022-03-09 00:16:18 · 2851 阅读 · 0 评论 -
Spring -> Spring MVC的主要组件?
Spring MVC的主要组件?DispatcherServlet:前端控制器主要负责捕获来自客户端的请求和调度各个组件。HandlerMappinginitHandlerMappings,处理器映射器,根据⽤户请求的资源uri来查找Handler的。在 SpringMVC中会有很多请求,每个请求都需要⼀个Handler处理具体接收到⼀个请求之后使⽤哪个Handler进⾏,这就是HandlerMapping需要做的事。HandlerAdapterinitHandler原创 2022-03-08 22:49:24 · 337 阅读 · 0 评论 -
Spring -> Spring MVC ⼯作流程
Spring MVC ⼯作流程⽤户发送请求⾄前端控制器 DispatcherServlet。在DispatcherServlet的doDispatch方法内执行MVC的所有流程DispatcherServlet 收到请求调⽤ HandlerMapping 处理器映射器。处理器映射器找到具体的处理器(注解进⾏查找),⽣成处理器及处理器拦截器⼀并返回给 DispatcherServlet。这里具体的处理器就是标注了@Controller的Bean对象,DispatcherSe原创 2022-03-08 22:31:05 · 145 阅读 · 0 评论 -
Spring -> Spring Boot、Spring MVC 和 Spring 有什么区别
Spring Boot、Spring MVC 和 Spring 有什么区别Spring 实际上是一个框架,它包括很多东西Spring AOPSpring JDBCSpring MVCSpring ORMSpring 如果单独拿出来说的话是⼀个IOC容器,⽤来管理Bean使⽤依赖注⼊实现控制反转,可以很⽅便的整合各种框架提供AOP机制更⽅便将不同类不同⽅法中的做增强Spring MVC是Spring 对web框架的⼀个解决⽅案提供了⼀个总的前端控制器Servlet,⽤来接原创 2022-03-08 18:11:45 · 421 阅读 · 0 评论 -
Spring -> Spring容器启动流程是怎样的
Spring容器启动流程是怎样的在创建Spring容器,也就是启动Spring时:beanFactory工厂,用来生产Bean注解读取器,读取那些@Service丶@Component注解路径扫描器,我们不仅要扫描当前主类包下的,还要扫描一些我们指定路径下的Class文件还有解析一些配置类,就是@Configuration标注的那些Bean之后就是核心的refresh容器刷新,refresh方法里面就有好多步骤,注册一些组件BeanFactory后置处理器 -> BeanF原创 2022-03-07 20:48:48 · 641 阅读 · 0 评论 -
Spring -> Spring中的事务实现原理
Spring中的事务实现原理Spring事务底层是基于数据库事务和AOP机制的⾸先对于使⽤了@Transactional注解的Bean,Spring会创建⼀个代理对象作为Bean当调⽤代理对象的⽅法时,会先判断该⽅法上是否加了@Transactional注解如果加了,那么则Spring AOP的机制执行方法前利⽤事务管理器创建⼀个数据库连接并且修改数据库连接的autocommit属性为false,禁⽌此连接的⾃动提交,数据库得保证有这个功能然后执⾏当前⽅法,⽅法中会执⾏s原创 2022-03-07 19:09:04 · 543 阅读 · 0 评论 -
Spring -> ApplicationContext和BeanFactory有什么区别
ApplicationContext和BeanFactory有什么区别BeanFactory:是Spring里面最低层的接口,提供了最简单的容器的功能,只提供了⽣成Bean,维护Bean的功能;ApplicationContext:继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能;获取系统环境变量、国际化、AOP等功能,这是BeanFactory所不具备的区别:我觉得最主要的区别应该是BeanFactory每次获取对象时才会创建对原创 2022-03-06 23:12:35 · 156 阅读 · 0 评论 -
Spring -> Spring中Bean是线程安全的吗
Spring中Bean是线程安全的吗Spring对Bean没有做什么加锁之类的操作,所以它不是线程安全的如果创建Bean的时候,作用域设置为prototype,那么每次获取Bean都会新建一个Bean实例作用域设置为prototype的时候,Bean绝对是安全的其他时候就不一定了,比如单例的作用域的时候,多个线程同时获取的Bean本就是共享的,本就是不安全的如果要Bean保证线程安全的问题,就把作用域设置为prototype@Component@Scope(value =原创 2022-03-06 22:53:52 · 705 阅读 · 0 评论 -
Spring -> Spring事务什么时候会失效?
Spring事务什么时候会失效?我们使用Spring事务也基本都是声明式事务,直接给个注解@Transactional就行了spring声明式事务的原理是AOP,进⾏了切⾯增强,那么失效的根本原因是这个AOP不起作⽤了!常⻅情况有 如下⼏种数据库不⽀持事务 -> 数据库就没有开启关闭提交的功能没有被Spring管理 -> 首先要是一个Spring的Bean才能使用AOPSpring被代理方法必须是public的 -> @Transactional注解原创 2022-03-06 22:13:17 · 585 阅读 · 0 评论 -
Spring -> Spring事务传播机制
Spring事务传播机制多个事务⽅法相互调⽤时,事务如何在这些⽅法间传播⽅法A是⼀个事务的⽅法,⽅法A执⾏过程中调⽤了⽅法B那么事务该如何传播?REQUIRED(Spring默认的事务传播类型-required):当前存在事务,则加⼊这个事务 ,当前没有事务,则新建事务REQUIRED适合出现任何异常都回滚到最初状态,因为只有一个事务提交REQUIRES_NEW:新建事务,当前存在事务,则挂起该事务REQUIRES_NEW适合给相互调用但是实际上需求互不影响的事务原创 2022-03-06 21:40:08 · 198 阅读 · 0 评论 -
Spring -> Spring事务的实现⽅式和原理以及隔离级别?
Spring事务的实现⽅式和原理以及隔离级别?在使⽤Spring框架时,可以有两种使⽤事务的⽅式,⼀种是编程式的,⼀种是申明式的Spring 并不直接支持事务,只有当数据库支持事务时,Spring 才支持事务数据库必须支持执行sql和提交sql的 步骤可以分离@Transactional注解就是申明式的。@Transactional 注解和@EnableTransactionManagement(开启事务管理功能)它是基于 Spring AOP 实现的,搞一个专门针对事务的代理原创 2022-03-06 19:06:34 · 293 阅读 · 0 评论 -
Spring -> 解释下Spring⽀持的⼏种bean的作⽤域
解释下Spring⽀持的⼏种bean的作⽤域singleton:默认,单例Bean,再确定Id的情况下,只有一个Bean匹配。prototype:非单例Bean。每获取一次都重新创建一个新的。request:bean被定义为在每个HTTP请求中创建⼀个单例对象,每个HTTP请求都会创建一个新的专门给这个请求复用使用,HTTP请求结束,Bean销毁。session:每个请求的session中有⼀个专门的bean的实例,在session过期后,Bean销毁。...原创 2022-03-06 16:47:27 · 130 阅读 · 0 评论 -
Spring -> BeanFactory 与FactoryBean有什么区别?
BeanFactory 与FactoryBean有什么区别?Bean Factory是一个接口,Factory是工厂,Bean Factory其实就是一个工厂接口BeanFactory: IOC容器的核心接口,定义了getBean()、containsBean()等管理Bean的通用方法。BeanFactory就是一个工厂接口,IOC容器其实就像一个工厂容器用来生产东西,用来存东西,跟工厂的概念其实区别不大Bean工厂和Bean容器实际上意思差不多那么BeanFactory作为一个接原创 2022-03-06 01:35:47 · 177 阅读 · 0 评论 -
Spring -> 描述一下bean的生命周期
描述一下bean的生命周期Spring启动,扫描到一个@controller等注解类,解析为BeanDefinition (Bean的 定义类)找到一个可用的构造方法实例化一个对象属性注入 -> 依赖注入Bean初始化前 -> 这一步骤时,构造方法和@Autowired都已经完成初始化Bean完成创建销毁BeanSpring启动,扫描到一个@controller等注解类,解析为BeanDefinition (Bean的 定义类)//启动扫描@ComponentScan原创 2022-03-05 22:27:42 · 297 阅读 · 0 评论 -
Spring -> 谈谈你对IOC的理解
谈谈你对IOC的理解IOC就是将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制IOC有3个概念 -> 容器、控制反转、依赖注⼊容器ioc容器:实际上就是个map(key,value),⾥⾯存的是各种Bean对象在xml⾥配置的Bean节点、 @repository、@service、@controller、@component在项⽬启动的时候会读取配置⽂件⾥⾯的bean节点根据全限定类名使⽤反射创建对象放到map⾥、扫描到上述注解的类通过反射创建对象放到map。原创 2022-03-05 16:50:45 · 587 阅读 · 0 评论 -
Spring -> 谈谈你对AOP的理解
谈谈你对AOP的理解简介AOP可以对某个对象或某些对象的功能进⾏增强⽐如对象中的⽅法进⾏增强可以在执⾏某个⽅法之前额外的做⼀些事情,在某个⽅法之后额外的做⼀些事情AOP真正强大之处在于,在系统主体业务逻辑丶流程已经固定的情况下可以在随意位置丶方法前后添加某些方法来对流程做一些增强或者修改,在任何代码位置插队想加逻辑就加逻辑,想增加一些业务就增加一些业务并且想去掉的时候,也可以直接去掉,不会影响主体业务例如,打开APP丶网页时用AOP加一段广告,去掉的时候,也可以直接去原创 2022-03-05 00:23:30 · 865 阅读 · 0 评论 -
Spring -> 切入点表达式
切入点表达式execution:一般用于指定方法的执行,用的最多。within:指定某些类型的全部方法执行,也可用来指定一个包。this:Spring Aop是基于动态代理的,生成的bean也是一个代理对象,this就是这个代理对象,当这个对象可以转换为指定的类型时,对应的切入点就是它了,Spring Aop将生效。target:当被代理的对象可以转换为指定的类型时,对应的切入点就是它了,Spring Aop将生效。args:当执行的方法的参数是指定类型时生效。@target:当代理的目标对象原创 2022-03-04 22:24:20 · 765 阅读 · 0 评论 -
Spring -> Spring是什么?
Spring是什么?Spring是一个开源框架,为了解决Java开发的复杂性而诞生的至于轻量不轻量,我感觉似乎不大轻量的样子,打一个jar包真不小,也是真吃内存其实也没什么好说的,就相当与一个系统,我们在这个系统上面去开发Java的程序简化了Java开发的步骤,有一些更好的封装好的功能比较核心的就是经常听到的IOC AOP什么控制反转丶什么面向切面编程什么的...原创 2022-03-04 18:01:39 · 128 阅读 · 0 评论 -
Spring -> 框架下载流程
1.官方网址:https://spring.io/春天框架2.点击猫的图像进入下载页面原创 2020-10-10 12:12:14 · 696 阅读 · 0 评论 -
Spring -> IOCxml配置注入类对象
1.spring配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http原创 2020-10-10 22:26:23 · 219 阅读 · 0 评论 -
Spring -> IOCxml配置注入无参构造器的对象
1.spring配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans原创 2020-10-11 15:32:27 · 236 阅读 · 0 评论 -
Spring -> IOCxml配置注入有参构造器的对象---附加:测试的类只能有一个构造器且是无参的(默认),否则会包错
1.spring配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans原创 2020-10-11 15:41:05 · 268 阅读 · 0 评论 -
Spring -> IOCxml配置注入,A类中方法调用B类中的方法(外部bean,级联赋值,使用嵌套)
1.被调用的类package test10month.test1011;public interface Rod { void add();}package test10month.test1011;/** * 功能描述: * @version 1.0 * @className RealizationRod * @author: 罗德 * @create: 2020-10-11 19:57 */public class RealizationRod implements原创 2020-10-11 20:21:49 · 423 阅读 · 0 评论 -
Spring -> IOCxml配置注入内部bean类对象
1.类`package test10month.test1011;/** * 功能描述: * @version 1.0 * @className Boss * @author: 罗德 * @create: 2020-10-11 20:44 */public class Boss { private String bossName; public void setBossName(String bossName) { this.bossName = bossName;原创 2020-10-11 21:09:40 · 183 阅读 · 0 评论 -
Spring -> IOCxml配置注入Array[],List,Map属性
1.类package test10month.test1011;import java.util.Arrays;import java.util.List;import java.util.Map;/** * 功能描述: * @version 1.0 * @className ArrayListMap * @author: 罗德 * @create: 2020-10-11 21:53 */public class ArrayListMap { private String[]原创 2020-10-11 22:14:41 · 492 阅读 · 0 评论 -
Spring -> IOCxml配置bean注入对象为另一个类的对象(FactoryBean)--附加多实例的配置注入
1.配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www原创 2020-10-12 12:49:34 · 387 阅读 · 0 评论 -
Java基础 -> 笔记整合(eDiary),蓝奏云下载
蓝奏云地址:https://rod.lanzous.com/b0dkcsomf密码:23zi原创 2020-10-12 13:01:40 · 5193 阅读 · 19 评论 -
Spring -> IOCxmlBean的生命周期
1.构造函数2.set方法3.后置处理器Before4.初始化5.后置处理器After6.获取了bean对象7.关闭1.配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"..原创 2020-10-12 14:37:35 · 82 阅读 · 0 评论 -
Spring -> IOCxml自动装配属性autowire(byName,byType)
1.配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.s原创 2020-10-12 15:03:35 · 372 阅读 · 0 评论 -
Spring -> IOCxml注入数据库连接池
1.Spring配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" x原创 2020-10-12 15:53:06 · 187 阅读 · 0 评论 -
Spring -> IOCxml使用注解的方式创建类对象(@Component,@Service,@Repository,@Controller)
1.XML<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:sc原创 2020-10-12 19:41:54 · 198 阅读 · 0 评论 -
Spring -> IOCxml使用注解的方式注入属性(@Autowired,@Quolifier,@Value)
1.XML<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:sc原创 2020-10-12 20:46:29 · 219 阅读 · 0 评论 -
Spring -> IOC完全注解方式配置(@Configuration,@ComponentSan())--附加:有参构造器注解的注入
package test10month.test1012;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annot原创 2020-10-12 21:24:28 · 1192 阅读 · 0 评论 -
Spring -> AOP动态代理,注解注入
配置类package test10month.test1013;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/** * 功能描述: * @version 1.0 * @className SpringClass * @author: 罗德 * @create: 2020-10-13 19:45原创 2020-10-14 13:11:43 · 564 阅读 · 0 评论 -
Spring -> AOP增强方法(Before,After,AfterThrowing,AfterReturning)
1.被代理的类package test10month.test1014;public interface Aop { void add();}package test10month.test1014;import org.springframework.stereotype.Component;/** * 功能描述: * @version 1.0 * @className AopImplement * @author: 罗德 * @create: 2020-10-14 1原创 2020-10-14 19:46:03 · 519 阅读 · 0 评论 -
Spring -> AOP增强执行的顺序@Order,@Pointcut
1.配置类package test10month.test1014;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.EnableAspectJAutoProxy;/** * 功能描述: */@Configur原创 2020-10-14 20:35:40 · 1322 阅读 · 0 评论