`
文章列表
在传统的Java应用中,Bean的生命周期非常简单。Java的关键词new用来实例化Bean(或许他是非序列化的)。这样就够用了。相反,Bean 的生命周期在Spring容器中更加细致。理解Spring Bean的生命周期非常重要,因为你或许要利用Spring提供的机会来订制Bean的创建过程。 1. 容器寻找Bean的定义信息并且将其实例化。 2.受用依赖注入,Spring按照Bean定义信息配置Bean的所有属性。 3.如果Bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的ID。 4.如果Bean实现了BeanFactoryAwar ...
1,$JAVA_HOME/jre/lib/ext/下的jar文件。 2,环境变量CLASSPATH中的jar和class文件。 3,$CATALINA_HOME/common/class下的class文件。 4,$CATALINA_HOME/commons/endorsed下的jar文件。 5,$CATALINA_HOME/commons/i18n下的jar文件。 6,$CATALINA_HOME/common/lib下的jar文件。jdbc驱动之类的jar我那间也可以放到这里,这样可以避免server.xml配置好数据源却找不到jdbc Driver的情况 7,$CATALINA_ ...
1.概念: 适配器模式(Adapter Pattern)[GOF95]把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 2.两种形式 a.类的适配器模式 b.对象的适配器模式 3.模拟问题: 现在假设我们的程序已经设计了接口Request接口,但是现在有一个特殊的接口SpecificRequst能更好的完成我们的功能,但是它和我们现有的Request接口不匹配。那我们如何将它们一起工作呢?看下面的实例: 3.图示实例1:a.类的适配器模式 实例代码: 目标角色:public interface Target { public v ...
1.概念 observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。JDK里提供的observer设计模式的实现由java.util.Observable类和 java.util.Observer接口组成。从名字上可以清楚的看出两者在Observer 设计模式中分别扮演的角色:Observer是观察者角色,Observable是被观察目标(subject)角色。 2.实例 该实例模拟了烧水的过程,涉及三个对象,Heater(热水器),Display(显示器),Alarm(报警器).    模拟过程:为了便于运行,水的初始化温度为90 ...
Aspectj   AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件.   AspectJ(也就是AOP)的动机是发现那些使用传统的编程方法无法很好处理的 ...
1.通用的日志输出方法 a. 原来在程序中编写日志时,都要在每一个业务逻辑方法里编写记录日志的代码: import org.apache.log4j.Level; import org.apache.log4j.Logger; public class TimeBook { private Logger logger = Logger.getLogger(this.getClass().getName()); //审核数据的相关程序 public void doAuditing(String name) { ...
当以一个字符串值来设置bean属性时,Spring IoC 容器最终使用标准的JavaBean PropertyEditor来将这些字符串转化成复杂的数据类型。Spring预先注册了一些PropertyEditor(举例来说,将一个以字符串表示的Class转化成Class对象)。除此之外,Java ...
1.属性编辑器主要应用在以下两个方面:     * 使用PropertyEditors设置Bean属性。当你在XML文件中声明的bean的属性类型为java.lang.String时,Spring将使用ClassEditor将String解析成Class对象(如果setter方法需要一个Class参数的话)。     * 在Spring MVC架构中使用各种PropertyEditors来解析HTTP请求中的参数。你可以用各种CommandController的子类来进行手工绑定。 2.内建的PropertyEditors
考虑下面两个类: public class Company { private String name; private Employee managingDirector; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Employee getManagingDirector() { re ...
1.ApplicationContext中的事件处理是通过ApplicationEvent类和ApplicationListener接口来提供的.如果在上下文中部署一个实现了ApplicationListener接口的bean,那么每当一个ApplicationEvent发布到ApplicationContext时,这个bean就得到通知。实质上,这是标准的Observer设计模式。Spring提供了三个标准事件:      a.ContextRefreshedEvent:当ApplicationContext初始化或刷新时发送的事件。这里的初始化意味着:所有的bean被装载,singleton ...
1.BeanPostProcessor接口: a.它定义了几个回调方法,实现该接口可提供自定义(或默认地来覆盖容器)的实例化逻辑、依赖解析逻辑等。如果你想在Spring容器完成bean的实例化、配置和其它的初始化后执行一些自定义逻辑,你可以插入一个或多个的BeanPostProcessor实现。 b.org.springframework.beans.factory.config.BeanPostProcessor接口有两个回调方法可供使用。当一个该接口的实现类被注册为容器的后置处理器(post-processor)后,对于由此容器所创建的每个bean实例在初始化方法(如afterPropert ...
1.初始化回调 实现org.springframework.beans.factory.InitializingBean接口允许容器在设置好bean的所有必要属性后,执行初始化事宜。InitializingBean接口仅指定了一个方法: void afterPropertiesSet() throws Exception; 通常,要避免使用InitializingBean接口(而且不鼓励使用该接口,因为这样会将代码和Spring耦合起来)可以在Bean定义中指定一个普通的初始化方法,即在XML配置文件中通过指定init-method属性来完成。如下面的定义所示: <bean id=&quo ...
如果你打算将一个Http request范围的bean注入到另一个bean中,那么需要注入一个AOP代理来替代被注入的作用域bean。也就是说,你需要注入一个代理对象,该对象具有与被代理对象一样的公共接口,而容器则可以足够智能的从相关作 ...
1.Singleton作用域: 当一个bean的作用域为singleton, 那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。 Singleton作用域是Spring中的缺省作用域。要在XML中将b ...
1.Spring IoC容器的实例化方法: a.Resource resource = new FileSystemResource("beans.xml"); BeanFactory factory = new XmlBeanFactory(resource); b.ClassPathResource resource = new ClassPathResource("beans.xml"); BeanFactory factory = new XmlBeanFactory(resource); c.ApplicationContext conte ...
Global site tag (gtag.js) - Google Analytics