spring
文章平均质量分 81
spring学习
developer@liyong
GISer
展开
-
Spring-配置元信息
【代码】Spring-配置元信息。转载 2024-05-20 22:14:36 · 2 阅读 · 0 评论 -
SpringBean-生命周期
EnvironmentAware 以及后面的接口都是属于ApplicationContext的生命周期,普通的BeanFactory 并不会回调这些Aware接口,在操作ApplicationContext的时候才会回调这些接口,因为在ApplicationContext初始化阶段,会添加一个AwarePostProcessor但是这个类是内置类,所以只有与ApplicationContext打交道才会有更多的Aware接口方法回调。在前面的讨论,已经完成了以下工作,这些工作也是属于前阶段。原创 2024-05-19 22:02:48 · 430 阅读 · 0 评论 -
Spring-Bean 作用域
1 首先自定义Scope@Override@Override@Override@Override@Override2 查找方式/*** 默认scope 就是singleton* @return*/@Bean/*** 创建bean* @return*/// 注册工厂 也就是 ThreadLocalScope.SCOPE_NAME 这个注入会走这里});// 这里开启三个现场去查找i < 3;i ++) {});原创 2024-05-11 22:01:26 · 555 阅读 · 1 评论 -
Spring-依赖来源
这个时候注册会报错,如果启动了,我们可不可以把这个注册写到refresh之后呢?不可以因为这个时候上面的@Autowired 注入的时候找不到这个bean也会报错,所以通过回调函数的方式来处理,当Factory创建好以后进行注册。这个方法后面会有这样一段代码,前者是存储了beanName和beanDefinition 后者是为了保证顺序,因为后者是一个ArrayList。我们看到这里还有一把锁,是因为这个方法可能会被单独使用,但是其实这里锁的是同一个对象,如果是同一个线程内没有额外加锁。原创 2024-05-09 21:21:48 · 1043 阅读 · 1 评论 -
Spirng-IOC零碎知识点
FactoryBean 是 Spring 框架提供的一种特殊的工厂 Bean 接口,用于创建复杂的 Bean 对象。与普通的 Bean 不同,FactoryBean 实现类不直接返回实例化的 Bean 对象,而是通过工厂方法来创建 Bean 实例。总结:对比上面我们可以发现,如果不使用延迟加载在上下文刷新的时候Bean的初始化已经完成了。延迟加载的话,在真正使用的时候才会进行初始化。这里和上面有所区别,这里我们只需要定义工厂就行了,不需要先定义工厂,然后还要定义具体的bean来指定实现工厂。原创 2024-05-09 13:11:49 · 459 阅读 · 0 评论 -
Spring-依赖查找
Spring 4.1覆盖默认参数:getBean(Class, Object)根据名称 + 类型查找 : getBean(Class, Name)Spring 3.0 获取指定名称+标注类型 Bean 实例。Spring 3.0 获取标注类型 Bean 名称列表。Spring 3.0 获取标注类型 Bean 实例列表。单一类型依赖查找(主要是基于BeanFactory)Spring 5.1 Bean 延迟查找。根据 Bean 类型查找实例列表。根据 Bean 类型查找。根据 Bean 名称查找。原创 2024-05-09 13:07:39 · 646 阅读 · 0 评论 -
Spring-依赖注入的处理过程
DependencyDescriptor 描述了我们要注入的目标的一些信息,申明类,字段名称,是否必须对应的就是Autowired的知否必须,eager是否是肌饿模式(实时注入),一般不用懒加载都是肌饿的。为什么上面可以直接返回呢,因为在resolveMultipleBeans方法中,判断了注入的类型如果是集合类型,也是走的一样的逻辑findAutowireCandidates找到候选的Bean进行返回。在懒注入的时候我们在这个方法已经有值了,所以逻辑在这一步就结束了,返回的是一个代理对象。原创 2024-05-08 20:14:02 · 821 阅读 · 0 评论 -
Spring-AOP基础(全在这里)
可以看到我们三种After的执行顺序是先after类似于finally,然后是afterReturing,如果是有异常的话就是after和afterThrowing.通过配置的方式参考前面的配置。我们找到了切入点,我们需要执行的动作,在一个特定的Joint Poiont 进行操作。1 关于顺序问题我们可以看到在同一切面遵循环绕通知 -> 前置通知 -> 后置通知的顺序 当然后置通知里面又有分类,后文会进行介绍。2 前置通知,后置通知都是框架主动执行,只有环绕通知需要我们手动去调用。原创 2024-03-10 15:03:57 · 1334 阅读 · 0 评论 -
Spring-BeanPostProcessor PostConstruct init InitializingBean 执行顺序
新建一个TestBeanPostProcessor 实现 BeanPostProcessor。新建一个对象用于测试。原创 2024-01-18 16:02:27 · 1186 阅读 · 0 评论 -
springboot(基础)
### springboot优点 - 创建独立的spring应用 - 内置web服务器 - 自动starter依赖,简化构建配置 - 自动配置spring以及第三方功能 - 提供生产级别的监控、健康检查及外部化配置 - 无代码生成、无需编写xml ### spring boot包管理 - parent 之所以有些引入不需要写版本号是因为在parent中已经申明了它默认的版本号,如果需要修改这个版本则直接在我们自己的pom文件中配置即可。 <parent> <gr原创 2022-02-28 17:06:21 · 930 阅读 · 0 评论 -
springboot(自动配置原理)
springboot应用加注解@SpringBootApplication, 它是一个合成注解@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConf原创 2022-02-28 16:46:50 · 249 阅读 · 0 评论 -
SPRING学习笔记
1.框架封装了很多技术,但缺少业务逻辑,方便开发使用。2.MVC框架:struts1,struts2,SpringMVC持久层框架:hibernate,mybatis整合型框架:spring3.MVC:控制层接受到客户端请求,调用模型层生成业务数据,传递给视图层,将最终的业务数据和视图响应给客户端做展示4.当通过类型来获取对象是可以不设置IDApplicationContext ac= new ClassPathXmlApplicationContext("beans.xml");ac.get原创 2020-07-11 23:49:15 · 136 阅读 · 0 评论 -
Spring boot获取Context
实现ApplicationContextAware接口@Configurationpublic class ApplicationContextHand implements ApplicationContextAware { private static ApplicationContext applicationContextHand; @Override public void setApplicationContext(org.springframework.contex原创 2020-11-23 23:45:56 · 327 阅读 · 0 评论