当前对象没有注册到spring容器中,此时无法new object()  的方式创建对象,否则所有@Autowired 注入的对象都为null; 处理方式: 手动创建一个类@Component注册到Spring容器  并实现ApplicationContextAware 接口,实现对象方法,完成获取spring容器的通道,再通过通道获取我们所需要的对象,此对象里面关联注入的其他对象都正常,可以正常使用了 /** * 用于手动获取spring无法注册的对象 */ @Component public…
ApplicationContextAware 接口的作用 先来看下Spring API 中对于 ApplicationContextAware 这个接口的描述:   即是说,当一个类实现了这个接口之后,这个类就可以方便地获得 ApplicationContext 中的所有bean.换句话说,就是这个类可以直接获取Spring配置文件中,所有有引用到的bean对象. 如何使用 ApplicationContextAware 接口 如何使用该接口?很简单. 1.定义一个工具类,实现 Applica…
写在前面 在前面的文章中,我们学习了如何使用@Import注解向Spring容器中导入bean,可以使用@Import注解快速向容器中导入bean,小伙伴们可以参见<[Spring注解驱动开发]使用@Import注解给容器中快速导入一个组件>.可以在@Import注解中使用ImportSelector接口导入bean,小伙伴们可以参见<[Spring注解驱动开发]在@Import注解中使用ImportSelector接口导入bean>一文.今天,我们就来说说,如何在@Import注…
转载自 http://ljbal.iteye.com/blog/497314 前段时间在公司做了一个项目,项目用了spring框架实现,WEB容器是Tomct 5,虽然说把项目做完了,但是一直对spring的IoC容器在web容器如何启动和起作用的并不清楚.所以就抽时间看一下spring的源代码,借此了解它的原理. 我们知道,对于使用Spring的web应用,无须手动创建Spring容器,而是通过配置文件,声明式的创建Spring容器.因此在Web应用中创建Spring容器有如下两种方式: 1.…
aware:英 [əˈweə(r)] 美 [əˈwer] adj.意识到的;知道的;觉察到的 XXXAware在spring里表示对XXX感知,实现XXXAware接口,并通过实现对应的set-XXX方法,然后就可以使用XXX了. 通俗的解释:如果在某个类里面想要使用spring的一些东西,就可以通过实行XXXAware接口告诉spring,spring会到最后给你送过来,而接收的方式是通过实现接口唯一的方法set-XXX.比如,有一个类想要使用当前的ApplicationContext,那么我…
前面我们已经介绍了几种为容器中添加组件的方法,今天一起学习通过FactoryBean添加组件的方法. 首先我们准备一个类,也就是我们需要注册进spring的ioc容器中的类 类Color: // 不必关心该类的具体代码实现,我们只是要把它注册进容器中即可 public class Color { private Car car; public Car getCar() { return car; } public void setCar(Car car) { this.car = car; }…
前言 上一章学习了[依赖来源],本章主要讨论SpringBean的作用域,我们这里讨论的Bean的作用域,很大程度都是默认只讨论依赖来源为[Spring BeanDefinition]的作用域,因为在我们的业务开发中,我们都是Spring框架的使用者,我们自定义的bean几乎全部都是属于[Spring BeanDefinition]的.后续文章以这个为默认前提. 作用域概览 来源 说明 singleton 默认的spring bean作用域,一个BeanFactory有且仅有一个实例,重要 pr…
系统是两台机器, 跑四个 web 容器, 每台机器两个容器 . nginx+memcached+quartz集群,web容器为 tomcat . web 应用中 用到spring 跑多个任务,任务只能一个容器执行,就是四个容器中只能用一个跑. 谁抢到谁跑. 本以为一个机器一个web容器的,就用IP 处理:现在一个机器两个,所以要获得web容器的端口号: 问题:在 web 应用中,spring 任务中 怎么获得web容器 端口号 .因为quartz 的job execute没有request对象?…
7.5 Spring容器中的Bean 7.5.1 Bean的基本定义和Bean别名 <beans.../>元素是Spring配置文件的根元素,该元素可以指定如下属性: default-lazy-init : 指定该<beans.../> 元素下配置的所有Bean默认的延迟初始化行为. default-merge : 指定该<beans.../> 元素下配置的所有Bean默认的merge行为. default-autowire : 指定该<beans.../>…
在Java中有那么一些概念:对象.类.包.模块.组件.容器.框架.这些概念都有一个共同的特点,就是[容纳]. 对象(Object) 在Java的世界里,对象是通过属性和方法来分别对应事务所具有的静态属性和动态属性的. 类(Class) 类是用于描述同一类型的对象的一个抽象的概念. 对象和类的关系 类是具有共同的属性名称和行为的一组对象的抽象,而对象则是一个类的真实的例子. 组件(Component) 组件也是抽象的概念,可以理解为一些符合某种规范的类组合在一起就构成了组件.他可以提供某些特定的功…