启动Spring容器对于使用Spring的Web应用,我们无需手动创建Spring容器,而是通过配置文件声明式地创建,所以我们需要在web.xml中配置一下,借助ServletContextListener监听器来完成。该监听器嫩巩固在Web应用启动的时候回调自定义方法,该方法能够可以启动Spring容器。Spring提供了一个ContextLoaderListener,该监听器实现了Servle
占坑
Spring3.1新增了一种缓存机制,这种缓存机制与Spring容器无缝结合在一起,可以对容器中的任意bean或bean的方法增加缓存。Spring的缓存级别更高,可以在控制器组件或业务逻辑组件级别进行缓存,这样应用完全无需重复调用底层的DAO。启动Spring缓存xml中有一个cache命名空间专门用来配置缓存。启动缓存需要在xml中添加如下一行:<cache:annotation-dri
AOP能够横向地看待程序,将与逻辑无关的功能,比如说日志,事物等从代码中抽离出来。使用AspectJ实现AOP安装Aspect,配置好环境变量后,用记事本写一个类:public class HelloWorld { public void sayHello(){ System.out.println("Hello AspectJ!"
Spring把文件,二进制流统称为资源。Spring改价了访问资源的策略,它提供了一个Resource接口,该接口提供了更强的资源访问能力,Spring架构本身大量使用了Resource来访问底层数据。Spring将所有形式的资源表现概括成一个Resource接口。如下所示(下面的接口定义是被简化的,有意省略了一些东西,以便突出重点):public interface Reso
我们也可以使用Annotation来代替XML配置文件。似乎注解是主流啊!搜索Bean类我们可以使用注解来为架构指明各个java类都是什么。@Component标注为一个普通的Spring Bean类。@Controller标注一个控制器组件类。@Service标注一个业务逻辑组件类。@Repository标注一个DAO组件类有了这些注解,架构已经能够知道那都是些什么java类了。接下来我们还要告
我们可以通过Bean后处理器跟容器后处理器来拓展Ioc容器。前者能增强bean的功能,后者能增强容器功能。Bean后处理器这是一种特殊的bean,不对外提供服务,也无需id属性,只负责对其它的正常bean执行后处理,比如为容器中的bean生成代理等。它会在正常bean创建后被创建,必须实现BeanPostProcessor接口。里面的两个方法会在目标bean初始化之前之后被调用。使用Applica
我们可以使用XML Schema的配置方式来简化xml文件的配置。p:简化设值注入p:与property子元素作用相同,用于设值注入。若想使用p,则xml文件中需要引入对p的说明,一般自动生成的xml都会自带。xmlns:p="http://www.springframework.org/schema/p"<bean id="chinese" class="com.cm.
为了方便与可读性,组件与组件2之间的耦合使用配置文件依赖注入,而基本类型的成员变量则直接爱代码中设置。有的时候bean的属性值可能是某个方法的返回值,或者类的field值,或者是另一个对象的get方法的返回值。Spring支持将任意方法的返回值、类或者对象的Feild值,其他bean的get返回值直接定义成容器中的一个bean。获取其他bean的属性值PropertyPathFactoryBean
spring可以管理单例bean的生命周期,知道何时被创建,核实初始化,何时销毁,也可以进行某些通用资源申请,销毁前资源回收。对于prototype,容器只负责创建,之后就撒手不管自生自灭。容器不知道一共创建了多少prototype,也不知道他们什么时候会被销毁,所以容器没法管理prototype。管理bean的生命周期有如下两个时机:注入依赖关系后即将销毁bean前依赖关系注入后的行为通过设定i
Spring框架的绝大部分工作是对bean的管理,包括管理bean的生命周期、使用bean继承功能。抽象bean与子bean为了防止太多十分类似的bean出现在xml中,我们使用抽象bean把共同的信息提取出来,使用abstract属性标记为true。它不能被实例化,意义只是被继承,是个模板。子bean可以继承抽象bean的实现类,构造器参数,属性配置信息。子bean可增加新的信息也可覆盖父bea
Spring支持使用如下三种方法创建Bean:调用构造器创建Bean调用静态工厂方法创建Bean调用实例工厂方法创建Bean构造器这是最常见的,框架底层调用bean的无参数构造器。这种情况下,class助兴是必需的。之前写的都是这种方式。静态工厂方法创建Beanclass也必须指定,但不是指定实现类,而是静态工厂类,这个工厂会创建bean实例。另外还需要factory-method指定用哪个方法创
开发者在Spring框架下只需要做两件事:开发bean,配置bean。所以我们要做到:眼中看的是xml,戏中想的是java类代码,因为Srping本质就是通过xml来驱动java代码,每段xml都对应一段java代码。bean的作用域通过scope属性可以为bean设置如下作用域。singleton:永远都只有一个实例。默认的是单例。创建后架构会持续跟踪维护。prototype:每次get都是一个
Spring有两个核心接口:BeanFactory和ApplicationContext。而ApplicationContext是BeanFactory的子接口,都可以代表Spring容器,用于产生管理Bean们。我们经常使用ApplicationContext以及它的实现类ClassPathXmlApplicationContext。当创建ApplicationContext时,会实例化所有的单
Spring是一种轻量级的架构,能够帮助我们更好地管理java类(Bean)之间的依赖关系,极大提高企业应用开发速率。我们可以使用MyEclipse自带的增加Spring Capacities工具来为项目增加Spring功能。User Library里面需要有spring lib包下面的所有jar,以及一个名为common-logging的jar包(需要额外下载,web项目需要)。使用Spring
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号