Spring容器关于继承的应用案例】的更多相关文章

一:案例演示 1.1.spring的配置文件applicationContext-extends.xml 1.2.业务类:CommonDao.java,PersonDao.java ---------------------------------------------------------------------------------------------------------------------------- 1.3.客户端代码 二:总结 1.如果一个类在spring配置文件中…
1 主要类 ContextLoaderListener:注册在web.xml中,web应用启动时,会创建它,并回调它的initWebApplicationContext()方法,从而创建并启动spring容器.必须继承ServletContextListener. WebApplicationContext:用于web应用的spring容器上下文,它代表了spring容器,继承自ApplicationContext.是一个接口,在ContextLoader.properties配置文件中可以声明…
方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSupport方法四:继承自抽象类WebApplicationObjectSupport方法五:实现接口ApplicationContextAware 常用的5种获取spring 中bean的方式总结: 方法一:在初始化时保存ApplicationContext对象 ApplicationContext…
一:spring的基本特征 Spring是一个非常活跃的开源框架:它是一个基于Core来架构多层JavaEE系统的框架,它的主要目的是简化企业开发.Spring以一种非侵入式的方式来管理你的代码,Spring提倡“最少侵入,这也意味着你可以适当的时候安装或卸载Spring.  二:开发Spring所需要的工具 1.Spring的jar包 到http://www.springsource.org/download下载spring,然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下 --…
Spring创建对象方法   创建对象过程: 第一步:添加SpringIOC环境 (1)在WebRoot/WEB-INT/lib文件夹下,引入SpringIOC配置环境的jar包 如图: (2)在src文件下引入applicationContext.xml文件,如图: 第二步:定义bean(相当于在容器中创建好对象了,只要等着在 注意:该步骤是在applicationContext.xml文件中完成的   定义bean有三种方式(以创建一个GregorianCalendar对象为例):   (1…
1. Spring容器的初始化过程 public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) {      this();      register(annotatedClasses);      refresh();} 1. this() 方法的执行过程 (1) 父类构造方法的初始化 1) 在DefaultResourceLoader 类里面初始化创建了个classLoad2) PathMatchingR…
Spring Boot run方法启动后相应的服务也随之启动,这个操作很妙.使用者都不用关心什么服务怎么启动,不管多少个服务怎么启动只要符合Spring Boot的启动规则都可以使用其run方法同一启动.Spring Boot run()方法剖析 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)对于run方法的剖析可知其底层本质就是Spring框架中的refresh方法.通过Eureka Server启动过程 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)可知对于Eur…
一.使用注解的DI实现 1.@Resource 使用该注解能够实现引用型属性的DI实现,该注解能够根据属性名和属性类型自动给属性赋值.一般使用@Resource(name="student")的形式明确指定名称,这样就只能根据属性名来填充值了. 步骤: (1)导入命名空间:命名空间示例 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.spr…
一.先说一个结论:单元测试与主项目的spring容器是隔离的,也就是说,单元测试无法访问主项目spring容器,需要自己加载spring容器. 接下来是代码实例,WEB主项目出于运行状态,单元测试中可能会看到如下这样的代码: 代码一:当前类加载式 public class TestSpring { @Test public void testSpring(){ LoginService loginService = this.getBean("loginService"); } //以…
关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) 应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他类(可能是更复杂的关联),所以当我们去使用这个类做事情时发现包空指针错误,这是因为我们这个类有可能已经初始化完成,但是引用的其他类不一定初始化完成,所以发生了空指针错误,解决方案如下: 1.写一个类继承spring的ApplicationListener监听,并监控ContextRefresh…
一.Spring 容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配号Bean之间的依赖关系,为上层应用提供准备就绪的运行环境. 二.内部工作机制 该图描述了Spring容器从加载配置文件到创建出一个完整Bean的作业流程: 1.ResourceLoader从存储介质中加载Spring配置信息,并使用Resource表示这个配置文件的资源: 2.BeanDefinitionReade…
如果我们需要对我们的Service方法作单元测试,恰好又是用Spring作为IOC容器的,我们可以这么配置Junit加载Spring容器,方便做单元测试. > 基本的搭建 (1)引入所需的包 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test<…
摘要 SpringMVC框架开发中可能会在Filter或Servlet中用到spring容器中注册的java bean 对象,获得容器中的java bean对象有如下方法 Spring中的ApplicationContexts可以被限制在不同的作用域.在web框架中,每个DispatcherServlet有它自己的WebApplicationContext,它包含了DispatcherServlet配置所需要的bean.DispatcherServlet 使用的缺省BeanFactory是Xml…
理论 刚好再开发过程中遇到了要在项目启动后自动开启某个服务,由于使用了spring,我在使用了spring的listener,它有onApplicationEvent()方法,在Spring容器将所有的Bean都初始化完成之后,就会执行该方法. 应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他类(可能是更复杂的关联),所以当我们去使用这个类做事情时发现包空指针错误,这是因为我们这个类有可能已经初始化完成,但是引用的其他类不一定初始化完成…
一.Spring容器接口关系 容器是Spring框架的核心,Spring容器就是一个巨大的工厂.Spring容器使用Ioc(控制反转(Inversion of Control )管理所有组成应用系统的组件. Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例. Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.它们都可以代表Spring容器.Spring容…
问题?Spring的DI讲解.DI有几种注入方式.一.spring的DI:依赖注入给属性赋值DI定义:一个对象类的属性可以使用springDI(依赖注入)来进行赋值,但是并不是所有的类属性都适合springDI来赋值.,一共有两种方式进行属性赋值:set方法和带参构造方法案例1:setting方法为对象类属性赋值Person类 package cn.itcast.sh.spring.di; import java.util.List; import java.util.Map; import j…
问题?spring是如何创建对象的?什么时候创建对象?有几种创建方式?测试对象是单例的还是多例的 ?对象的初始化和销毁? 下面的四大模块IOC的内容了!需要深刻理解 SpringIOC定义:把对象的创建.初始化.销毁等工作交给spring容器来做.由spring容器控制对象的生命周期. 先拷入核心jar包:点击打开下载链接 一.spring是如何创建对象的,有几种创建方式 spring容器创建对象的方式 1.默认是调用默认的构造函数 2.利用静态工厂方法创建 spring调用工厂方法产生对象,但…
一.使用ApplicationContext 前面介绍了,我们一般不会使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例作为容器,它增强了BeanFactory的功能. ApplicationContext允许以声明式方式操作容器,无须手动创建它.在Web应用启动时自动创建ApplicationContext.当然,也可以采用编程方式创建ApplicationContext. 除了提供BeanFactory所支持的全部功能外,Applicatio…
前面讲过,spring的生命周期为:实例化前奏-->实例化-->实例化后期-->初始化前期-->初始化-->初始化后期-->bean的具体调用-->销毁前-->销毁.那么,从装配XML属性到实例化bean的内部机制是怎样的,没有细说,今天我们来一起刨根问底. 还是老风格,以具体例子先入为主.下面是一个再简单不过的spring框架的栗子.(XML,有.Bean,有.Spring容器,有.main函数,有.麻雀虽小,但是够了.) 这是XML,简单易懂,嘎嘣脆:…
日出日落,春去秋来,花随流水,北雁南飞,世间万物皆有生死轮回.从调用XML中的Bean配置信息,到应用到具体实例中,再到销毁,Bean也有属于它的生命周期. 人类大脑对图像的认知能力永远高于文字,因此,闲言少叙,书归正传,上图先: 步骤很多,切莫惊慌,我们可以把上面的步骤归纳如下: 1-2:创建实例: 现在假设spring就是个容器,而配置文件中配置的bean属性才是我们真正需要的东西.创建实例就是说,我把配置文件中的bean信息取出来化作一个真正的bean并放到容器中. 3-4:注入依赖关系:…
Spring 容器像一台构造精妙的机器,我们通过配置文件向机器传达控制信息,机器就能够按照设定的模式进行工作.如果我们将Spring容器比喻为一辆汽车,可以将 BeanFactory看成汽车的发动机,而ApplicationContext则是 整辆汽车,它不但包括发动机,还包括离合器.变速器以及底盘.车身.电气设备等其他组件.在ApplicationContext内,各个组件按部就班. 有条不紊地完成汽车的各项功能. ApplicationContext内部封装 了一个BeanFactory对象…
一.使用ApplicationContext 前面介绍了,我们一般不会使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例作为容器,它增强了BeanFactory的功能. ApplicationContext允许以声明式方式操作容器,无须手动创建它.在Web应用启动时自动创建ApplicationContext.当然,也可以采用编程方式创建ApplicationContext. 除了提供BeanFactory所支持的全部功能外,Applicatio…
在Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类和方法可以是普通类.很显然,第二种方式远比第一种方式来的灵活. 测试环境 Spring3 M2 quartz-2.1.7 我们要达到这样的效果 public class CancelUnpaidOrderTask implements Job { @Autowired private AppOrderService orderService; @Over…
经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现…
第六步: public abstract class AbstractApplicationContext extends DefaultResourceLoader implements ConfigurableApplicationContext, DisposableBean { protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { refreshBeanFactory();//具体实现调用子类容器的ref…
Spring容器是生成Bean的工厂,我们在做项目的时候,会用到监听器去获取spring的配置文件,然后从中拿出我们需要的bean出来,比如做网站首页,假设商品的后台业务逻辑都做好了,我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的方法,也就是说我们需要在监听器里获取Spring中配置的相应的bean.先把监听器创建出来: 1. 创建InitDataListener 创建一个监听器InitDataListener继承Serv…
上文说到,有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期.业务代码只需要按照业务本身的流程,走啊走啊,走到哪里,需要另外的对象来协助了,就给Spring说,我想要个对象--于是Spring就很贴心的给你个对象.听起来似乎很简单,使用起来也不难,但是如果仅仅是这样的拿来主义,倒也洒脱,不用费什么脑子...可是,你就真的不关心,Spring是从哪里把对象给你的吗? 如果你想要了解Spring深一些,而不仅仅是拿来用用,那么你就应该好好思考一下上诉问题,不然,这…
相关文章 如何慢慢地快速成长起来? 成长的故事之Spring Core系列 你是如何看待Spring容器的,是这样子吗? Spring的启动过程,你有认真思考过吗?(待写) 面向切面编程,你指的是Spring AOP吗?(待写) Spring的声明式事务,这次你彻底明白了吧?(待写) §如何提问,如何回答? 记得大学时,思想道德修养课的老师说过,现在的大学生都不太会表达自己的观点.她举了这么个例子,如果你在食堂,随机采访几个学生,就问:“你觉得食堂的饭菜怎么样啊?” 你得到最多的答案大概是像这样…
容器是整个Spring 框架的核心思想,用来管理Bean的整个生命周期. 一个项目中引入Spring和SpringMVC这两个框架,Spring是父容器,SpringMVC是其子容器,子容器可以看见父容器中的注册的Bean,反之就不行.请记住这个特性. spring 容器基础释义 1 我们可以使用统一的如下注解配置来对Bean进行批量注册,而不需要再给每个Bean单独使用xml的方式进行配置. <context:component-scan base-package="com.amu.mo…
引言 org.springframework.beans.BeanWrapper是Spring框架中重要的组件类.BeanWrapper相当于一个代理器,Spring委托BeanWrapperwancehngBean属性的填充工作.在Bean实例被InstantiatioonStrategy创建出来之后,容器主控程序将Bean实例通过BeanWrapper包装起来,这是通过调用BeanWrapper#setWrappedInstance(Object obj)方法完成的. 继承体系 BeanWr…