
spring
文章平均质量分 79
YinXinLion
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot起步依赖
StartersStarters是一组方便的依赖描述符,您可以在应用程序中包含这些描述符。您可以获得所需的所有Spring和相关技术的一站式服务,而无需搜索示例代码和复制粘贴依赖描述符的负载。例如,如果要开始使用Spring和JPA进行数据库访问,请在项目中包含spring-boot-starter-data-jpa依赖项。starters减少了我们开发时需要搜索依赖哪些包的时间。spring...原创 2019-11-17 17:35:08 · 467 阅读 · 0 评论 -
SpringBoot配置实现原理
大体步骤1.实现java配置类。在我们的类上声明@Configuration注解2.编写条件。通过@Conditional注解,来达到什么情况下创建我们需要的bean。3.定位配置。我们需要在META/spring.factories中声明我们的自动配置类,让springboot能够找到它。相关注解@Conditional:条件注解类条件@ConditionalOnClass:存在某...原创 2019-11-16 21:55:48 · 210 阅读 · 0 评论 -
restTemplate使用
什么是restTemplateRestTemplate是Spring提供的一个访问Http服务的客户端类。比httpClient好用几百倍。类似于jdbcTemplate。其中的方法使用创建restTemplate1.我们可以通过RestTemplateBuilder的build方法创建。2.直接通过new来创建一个实例。UriComponentsBuilder类,可以通过它来帮助...原创 2019-11-05 22:27:07 · 428 阅读 · 0 评论 -
DispatcherServlet逻辑处理
先看一下DispatcherServlet的关系结构图HttpServlet大家一定不陌生。DispatcherServlet重写了那些doGet、doPost方法。进入到processRequest方法原创 2019-11-05 11:50:25 · 219 阅读 · 0 评论 -
SpringMvc初始化流程源码
SpringMVC解决了哪些问题?将web页面请求传给服务器根据不同的请求处理不同的逻辑单元返回处理结果数据并跳转至响应页面<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="h...原创 2019-10-31 18:09:39 · 622 阅读 · 0 评论 -
Mybatis事务源码
使用<tx:annotation-driven transaction-manager="transactionManager" /><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property n...原创 2019-10-12 20:43:15 · 227 阅读 · 0 评论 -
Mybatis注册扫描源码
Mybatis独立使用1.建立POpublic class User { private Integer id; private String name; private Integer age; public User(String name, Integer age) { this.age = age; this.name ...原创 2019-10-10 18:10:13 · 324 阅读 · 0 评论 -
jdbcTemplate源码分析
先看下jdbcTemplate的update方法,保存user对象。传入sql语句、值及对应的类型。进入update源码setValues用于设置preoaredStatement所需要的全部参数。execute是数据库操作核心入口。PreparedStatementCallback作为回调函数。execute方法流程1.获取数据库连接1.通过TransactionSy...原创 2019-09-26 20:04:09 · 971 阅读 · 1 评论 -
AOP源码分析
首先了解下AOP使用1.创建一个用于拦截的bean@Component@Slf4jpublic class TestBean { private String testStr = "testStr"; public String getTestStr() { return testStr; } public void setTestStr(...原创 2019-09-23 19:59:11 · 188 阅读 · 0 评论 -
ApplicationContext初始化源码
ApplicationContext和BeanFactory都是用于加载Bean的,该接口用于扩展BeanFactory功能,比BeanFactory更强大。@Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMon...原创 2019-09-09 18:03:54 · 544 阅读 · 0 评论 -
Spring中bean的初始化实践与源码分析
实践我这边以Springboot来测试实现一个B类定制一个BeanPostProcessor处理器,并创建B实例到容器中,指定了B的initMethod方法为init()。运行结果源码学习上篇文章大概分析过了populateBean方法了。通过initializeBean方法,我们能了解到bean的初始化流程。首先看一下方法1的invokeAwareMethods,可以看...原创 2019-08-29 10:20:37 · 450 阅读 · 0 评论 -
创建Bean时的populateBean方法
先看一原创 2019-08-26 16:44:06 · 2614 阅读 · 0 评论 -
Spring源码阅读之ignoreDependencyInterface方法
先看下源码在容器初始化时,会调用这个ignoreDependencyInterface方法。这个方法的意识是:忽略给定接口的自动装配功能。可以看到用一个set集合来存放要忽略的接口。这么做的目的是什么?Spring采用的是懒加载方式,当类A中有属性B时,在从容器中获取A对象时会查看属性是否初始化,没有的话会自动初始化B。然而有些情况下是不希望(黑人问号)初始化属性B的。例如B实现了Be...原创 2019-08-11 19:41:27 · 4634 阅读 · 0 评论 -
beforeSingletonCreation方法作用
昨天看到beforeSingletonCreation这个方法一直没搞懂有啥用,今天梳理下吧。先看下代码:首先说下这个shouldPostProcess变量,如果true则是用户自己定义的bean,false是系统的。我们可以在这个bean实例化后做处理,可以看到postProcessObjectFromFactoryBean就是用来执行用户自定义动作的。步骤1,是先从缓存中通过beanN...原创 2019-08-19 17:16:39 · 1051 阅读 · 0 评论 -
Spring学习笔记(二)
Bean作用域首先解释下作用域,java、js都有作用域,它们表示的是变量的可见范围,例如函数中定义的变量只能在这个函数里使用。而Spring容器的作用域是指创建的Bean相对于其他Bean的请求可见范围。(1)singleton作用域在每个IOC容器中只创建一个实例,整个生命周期由Spring容器管理。也就是,对于所有获取该bean(singleton)的操作,容器只返回同一个Bean。...原创 2018-11-24 15:51:59 · 162 阅读 · 0 评论 -
Spring学习笔记(一)
什么是控制反转?控制:一般程序会主动创建对象,并控制对象。反转:正转是我们需要对创建的对象主动去设置依赖的资源和对象。反转,我们不用主动去设置。IOC容器帮我们去控制我们所需要的对象,并且对象所以来的资源,IOC去创建并帮我们设置好,所有,当我们从IOC容器拿到对象后,这个对象可以直接使用,提高了程序的功能复用,并进行了解耦。什么是依赖注入?依赖了什么:应用程序需要依赖IOC容器来获得资...原创 2018-10-27 21:47:31 · 235 阅读 · 0 评论 -
Spring源码学习(二):IOC容器在WEB容器中的初始化
IOC容器的创建就是我们创建一个容器,使其有IOC容器的基本结构,能够管理bean,定义读取等。web容器的IOC容器创建使用createWebApplication()函数完成IOC容器的创建。IOC容器的创建是读取bean的定义,并加载入beanDefinition并注册到一个HashMap中。下文中的ConfigureAndRefreshWebApplicationContext()进行IOC原创 2017-07-28 10:01:53 · 387 阅读 · 0 评论 -
Spring源码学习(一):IOC容器初始化
Spring中,最基本的IOC容器为BeanFactory。这是容器对bean的基本管理接口1. public interface BeanFactory { 2. 3. //这里是对FactoryBean的转义定义,因为如果使用bean的名字检索FactoryBean得到的对象是工厂生成的对象, 4. //如果需要得到工厂本身,需要转义原创 2017-07-20 12:14:03 · 279 阅读 · 0 评论